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.