Forum Linux.général mon service est loaded (enable) mais inactive

Posté par . Licence CC By‐SA.
Étiquettes : aucune
1
11
nov.
2018

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 (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 :

    ### BEGIN INIT INFO
    # Provides: sshd
    # Required-Start: $remote_fs $syslog
    # Required-Stop: $remote_fs $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop:
    # Short-Description: OpenBSD Secure Shell server
    ### END INIT INFO
    `
  • # systemd, il ne te manque pas grand chose

    Posté par . Évalué à 4.

    tu fais le start
    mais tu ne fais pas le enable

    systemctl start persoService
    systemctl status persoService

    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.