web-dev-qa-db-fra.com

Debian: Comment exécuter un script au démarrage sans avoir à écrire 30 lignes de script Shell?

J'ai un serveur Debian et j'ai juste besoin d'exécuter un script au démarrage.

J'ai lu cela: https://www.debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian

J'ai maintenant: insserv: avertissement: les balises LSB manquantes du script et les remplacements

il semble donc que je dois ajouter maintenant:

### BEGIN INIT INFO
# Provides:          scriptname
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start daemon at boot time
# Description:       Enable service provided by daemon.
### END INIT INFO

Cela semble maintenant fou: comme 30 lignes de script juste pour exécuter un programme au démarrage.

Existe-t-il un outil qui permet de le faire de manière simple?

Cordialement

23
yarek

Pensez à utiliser /etc/rc.local (exécuté en tant que root) ou crontab (exécuté en tant qu'utilisateur de votre choix).

Deux exemples:

  • /etc/rc.local

    #!/bin/sh -e
    #(Multiple lines of comments removed.)
    /usr/local/bin/your-script.sh
    exit 0
    
  • crontab (édité via, par exemple, crontab -e)

    #(Multiple lines of comments removed.)
    @reboot /usr/local/bin/your-script.sh
    

Si votre script doit s'exécuter en continu en arrière-plan, je vous déconseille d'utiliser rc.local ou crontab, et écrivez à la place un bon (ou plusieurs) init.d script (s). De cette façon, vous/votre système pouvez redémarrer/recharger/démarrer/arrêter proprement les démons.

Le LSB tags fournit une certaine valeur: "En documentant les dépendances au moment de l'exécution des scripts init.d, il devient possible de vérifier l'ordre de démarrage actuel, de commander le démarrage à l'aide de ces dépendances et d'exécuter des scripts de démarrage en parallèle pour accélérer le processus de démarrage. " Pour plus de détails, rendez-vous sur le wiki Debian .

Soit dit en passant, les en-têtes manquants: c'est un avertissement, donc en fait, c'est à vous de décider comment et quoi faire avec cela.

32
gf_

supervisord est également une option. Vous allez réécrire quelques lignes afin de démarrer vos node.js et PHP stuff, mais elles seront moins nombreuses.

0
adamo

Vous pouvez utiliser monitd pour cela, écrivez simplement une définition de monit et il démarrera des démons pour vous. Mais pourquoi n'utilisez-vous pas correctement les scripts LSB? Ce n'est pas si difficile de l'écrire (vous ne l'écrivez qu'une seule fois) et c'est le moyen le plus propre et le plus précieux pour y parvenir.

0
Ondra Sniper Flidr