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
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
Éditer /etc/rc.conf
et ajouter
enable_monappli=YES
Redémarrez la jail et le service devrait se lancer.