Je suis en train de créer un fichier dans init.d pour pouvoir lancer un script php. Pour le faire j'ai chercher sur internet et je regarde également la construction des autres fichiers dans init.d. Tout ce que je met après le case marche bien mais à l'intérieur du case rien ne s’exécute.
pi@raspberrypi:~ $ sudo service aepr
[info] Usage: /etc/init.d/aepr {start|stop|restart}.
pi@raspberrypi:~ $ sudo service aepr start
Warning: aepr.service changed on disk. Run 'systemctl daemon-reload' to reload units.
pi@raspberrypi:~ $ sudo su
root@raspberrypi:/home/pi# systemctl daemon-reload
root@raspberrypi:/home/pi# exit
exit
pi@raspberrypi:~ $ sudo service aepr start
pi@raspberrypi:~ $ sudo service aepr stop
pi@raspberrypi:~ $ sudo service aepr restart
pi@raspberrypi:~ $ cat /etc/init.d/aepr
#! /bin/sh
# /etc/init.d/aepr
#
# Some things that run always
PIDFILE=/home/pi/prog/_variables/aepr.pid
DESC="aepr deamon"
NAME=aepr
DAEMON=/home/pi/prog/_programmes/event_timer-test.prog.php
SCRIPTNAME=/etc/init.d/"$NAME"
PARAMS=""
. /lib/lsb/init-functions
# Carry out specific functions when asked to by the system
case "$1" in
start)
log_daemon_msg "Starting aepr program" "$NAME"
start_daemon -p $PIDFILE $DAEMON $PARAMS
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping aepr programm" "$NAME"
killproc -p $PIDFILE $DAEMON
RETVAL=$?
[ $RETVAL -eq 0 ] && [-e "$PIDFILE" ] && rm -f $PIDFILE
log_end_msg $RETVAL
;;
restart)
log_daemon_msg "Restarting aepr programm" "$NAME"
$0 stop
$0 start
;;
*)
log_action_msg "Usage: /etc/init.d/aepr {start|stop|restart}"
exit 1
;;
esac
exit 0
pi@raspberrypi:~ $
Si vous avez une idée ou des questions de je suis là, merci
En effet cela est beaucoup plus simple. J'ai essayer avec le code que tu me donne mais quand je voulais le lancé rien ce ne se passais j'ai donc continuer à chercher un peu dans cette direction et je suis finalement arrivé à ce que je voulais.
En tout cas merci, je retiendrais systemd qui est bien plus simple que init.d
EDIT :
J'ai en revanche une erreur pour le lancement au démarrage quand je tape la commande que tu me donne, il me retourne une erreur :
pi@raspberrypi:~ $ sudo systemctl enable aepr.service
Synchronizing state of aepr.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable aepr
update-rc.d: error: aepr Default-Start contains no runlevels, aborting.
Après avoir supprimer mon fichier dans /etc/init.d je n'ai plus d'erreur mais le script se lance pas au démarrage pour autant.
J'ai essayer de enable, daemon-reload et reboot plusieurs fois mais rien ne marche. Je peux toujours le lancer avec sudo systemctl start aepr.service et l'arrêter.
pi@raspberrypi:~ $ sudo systemctl enable aepr
pi@raspberrypi:~ $ sudo systemctl status aepr
● aepr.service - Aepr
Loaded: loaded (/etc/systemd/system/aepr.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-03-18 09:46:46 CET; 21min ago
Main PID: 762 (php)
CGroup: /system.slice/aepr.service
└─762 /usr/bin/php /home/pi/prog/_programmes/event_timer-test.prog.php
Mar 18 09:46:46 raspberrypi systemd[1]: Started Aepr.
Mar 18 09:46:47 raspberrypi php[762]: Chargement du programme...(5s)
Mar 18 09:46:52 raspberrypi php[762]: Chargement terminé!
Mar 18 09:46:52 raspberrypi php[762]: Exécution du programme en cours...
Mar 18 09:46:52 raspberrypi php[762]: (CTRL+C pour arrêter l'exécution)
Mar 18 09:57:40 raspberrypi php[762]: Erreur lecture : 20190318095738 -> 20190318095740
Mar 18 09:57:40 raspberrypi php[762]: Ecart : 1
Apres reboot (10h09) :
sudo systemctl status aepr
● aepr.service - Aepr
Loaded: loaded (/etc/systemd/system/aepr.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-03-18 10:10:03 CET; 49s ago
Process: 511 ExecStart=/usr/bin/php /home/pi/prog/_programmes/event_timer-test.prog.php (code=exited, status=255)
Main PID: 511 (code=exited, status=255)
Mar 18 10:09:59 raspberrypi systemd[1]: Started Aepr.
Mar 18 10:10:03 raspberrypi php[511]: Chargement du programme...(5s)
Mar 18 10:10:03 raspberrypi php[511]: </br><strong>EXCEPTION $e ==> ##CODE : </strong>2002</br><strong>Error Message
Mar 18 10:10:03 raspberrypi php[511]: #1 /home/pi/prog/_programmes/event_timer-test.prog.php(32): connexionBDD(Array)
Mar 18 10:10:03 raspberrypi php[511]: #2 {main}</pre>
Mar 18 10:10:03 raspberrypi systemd[1]: aepr.service: Main process exited, code=exited, status=255/n/a
Mar 18 10:10:03 raspberrypi systemd[1]: aepr.service: Unit entered failed state.
Mar 18 10:10:03 raspberrypi systemd[1]: aepr.service: Failed with result 'exit-code'.
Grâce à toi je crois comprend, ma base de données n'est pas encore active lors de la tentative de connexion de mon programme. Il me semble qu'il est possible de faire un démarrage retardé.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Call me Spaceman
Call me Spaceman
git is great because Linus did it, mercurial is better because he didn't.
Call me Spaceman
git is great because Linus did it, mercurial is better because he didn't.
Call me Spaceman
git is great because Linus did it, mercurial is better because he didn't.
Call me Spaceman