Bonjour à tous,
voila j'ai créé un script : persoService.sh :
#!/bin/bash
DAEMON="/bin/persoProg" #ligne de commande du programme
DAEMONUSER="cosmoff" #utilisateur du programme
daemon_NAME="persoProg" #Nom du programme (doit être identique à l'exécutable).
PATH="/sbin:/bin:/usr/sbin:/usr/bin"
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
d_start () {
log_daemon_msg "Starting system $daemon_NAME Daemon"
start-stop-daemon --background --name $daemon_NAME --start --quiet --chuid $DAEMONUSER --exec $DAEMON #-- $daemon_OPT
log_end_msg $?
}
d_stop () {
log_daemon_msg "Stopping system $daemon_NAME Daemon"
start-stop-daemon --name $daemon_NAME --stop --retry 5 --quiet --name $daemon_NAME
log_end_msg $?
}
case "$1" in
start)
d_start
;;
stop)
d_stop
;;
restart)
d_stop
d_start
;;
status)
status_of_proc "$daemon_NAME" "$DAEMON" "system-wide $daemon_NAME" && exit 0 || exit $?
;;
*)
echo "error"
;;
esac
exit 0
puis j'ai placé ce script dans /etc/init.d, j'ai mis les droits, je l'ai testé et il marche, d'ailleurs voila ce que fait le programme (c'est un script que j'ai placé dans le répertoire /bin :
#!/bin/bash
mkdir /home/cosmoff/Bureau/coco
while true
do
sleep 10
done
j'ai ensuite lancé la commande:
sudo update-rc persoService.sh default
mais il m'a crée aucun lien symbolique dans /etc/rc?.d (ce qui me semble bizarre car tous les services me semble avoir un lien symbolique vers ces répertoires)
quand je fais :
systemctl start persoService
systemctl status persoService
je vois que le service est loaded et active (running), que le script a bien créé le répertoire coco, et que le programme persoProg tourne (via la commande ps)
j'efface ensuite le répertoire coco puis redémarre la machine, et je constate que le service est loaded mais inactive et qu'il n'a pas créé le répertoire coco ni que le programme persoProg tourne (via la commande ps).
Avez vous une idée du probleme
Merci d'avance pour votre aide
# ordre à l'init
Posté par Sytoka Modon (site web personnel) . Évalué à 4. Dernière modification le 11 novembre 2018 à 14:34.
L'ordre à l'init est désormais automatique et calculé à chaque fois via les méta-commentaires en début de script. Voir ceux de ssh et s'en inspirer :
# systemd, il ne te manque pas grand chose
Posté par NeoX . Évalué à 4.
tu fais le start
mais tu ne fais pas le enable
systemctl enable persoService
permettra à la machine de savoir qu'il faut demarrer le service avec la machine
et comme dit plus haut il te faudra surement definir à quel moment il doit se lancer (au boot, au niveau 2 ou 3, à l'arret de la machine), quelles sont ses dependances (reseau, disque)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.