
¿Cuál es la forma idiomática? Preferiría la forma más estándar y sencilla con menos dependencias adicionales. Algo así como una alternativa al systemd de Linux.
Respuesta1
Los procesos instalados se pueden reiniciar automáticamente agregando a/etc/rc.conf
yourprocess_enable="YES"
Inicio del sistema FreeBSD para usuarios de Linux
pero eso supone que hay un script de inicio en/usr/local/etc/rc.d/
Respuesta2
Si aún no tiene un script rc.d para su proceso, puede lograr fácilmente el resultado deseado con eldemonio(8)dominio. El comando ejecutará un proceso hijo en segundo plano y, con la opción de línea de comando -r
, puede hacer que reinicie el proceso hijo si muere:
$ daemon -r /some/path/to/command
En versiones posteriores de FreeBSD, puede especificar -R <delay in seconds>
cuánto tiempo esperar antes de reiniciar el proceso.
Para iniciar el proceso después de reiniciar, especifique el comando en elcrontab(5)archivo como este:
@reboot daemon -r /some/path/to/command
Para editar el archivo crontab, use
$ crontab -e
Respuesta3
Como se mencionó, <service>_enable=YES
en /etc/rc.conf
(o rc.conf.d
archivos relevantes) se iniciará un servicio al arrancar.
Para reiniciar en caso de fallas, la forma canónica de hacerlo implicaríaDaemon Tools.
Respuesta4
Puede agregar un script a cron cada (en el ejemplo) dos minutos:
#!/bin/sh
process = 'my-secret-service' # process name
if ps ax | grep -v grep | grep $process
then
echo "$process is alive."
else
echo "$process is dead, but will be launched."
/usr/local/bin/my-secret-service #launch command
fi