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
.envde l’appli, ça évite de changer de répertoire - La commande daemon qui lance l’appli
-Slogge 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/monappliA partir de la vous pouvez taper
service monappli start|stop|restartEt pour voir les logs
tail -200f /var/log/messagesLancement au démarrage de la jail
Section titled “Lancement au démarrage de la jail”Éditer /etc/rc.conf et ajouter
enable_monappli=YESRedémarrez la jail et le service devrait se lancer.