Démarrer un daemon dans un jails
L’idée est de faire en sort qu’un démon soit lancé au démarrage de la jail. Pour la description on va prendre une appli node.js qui montre plusieurs détails de configuration.
Sur les jails actuelle, c’est la version 12.2-RELEASE-p3
.
Script de démarrage
Section titled “Script de démarrage”Voilà le script utilisé dans /etc/rc.d/monappli
#!/bin/sh # # PROVIDE: monappli #1 # REQUIRE: networking #2 # KEYWORD: . /etc/rc.subr name="monappli" rcvar="monappli_enable" #3 monappli_user="monuser" #4 monappli_env_file="/var/lib/www/.env" #5 monappli_command="/usr/local/bin/node /var/lib/www/dist/app.js" pidfile="/var/run/monappli/${name}.pid" command="/usr/sbin/daemon" command_args="-P ${pidfile} -S -r -f ${monappli_command}" #6 load_rc_config $name : ${monappli_enable:=no} run_rc_command "$1"
- Ce que le script produit
- Le réseau est nécessaire pour démarrer
- Nom de la variable dans
rc.conf
- L’utilisateur qui lance l’appli
- Le fichier
.env
de l’appli, ça évite de changer de répertoire - La commande daemon qui lance l’appli
-S
logge la console dans syslog (évite de gérer le rolling)
Pensez à chmod +x
le fichier et à chown
le répertoire du pid
chmod +x /etc/rc.d/monappli mkdir /var/run/monappli chown monuser:monuser /var/run/monappli
A partir de la vous pouvez taper
service monappli start|stop|restart
Et pour voir les logs
tail -200f /var/log/messages
Lancement au démarrage de la jail
Section titled “Lancement au démarrage de la jail”Éditer /etc/rc.conf
et ajouter
enable_monappli=YES
Redémarrez la jail et le service devrait se lancer.