Permita que los usuarios creen sus propios demonios

¿Cómo dejo que los usuarios del server creen sus propios demonios? Deben iniciarse automáticamente al arrancar y comportarse de la misma forma que los demonios normales, pero con less privilegios en general.

Recuerdo que vi una herramienta que permitía a un usuario crear un file en formatting similar a un crontab con sus deseos. La herramienta se aseguró de que los progtwigs del file se ejecutaran en todo momento . Pero ahora no pude encontrar su nombre.

nohup ./app & simplemente no se corta porque no se iniciará automáticamente y la aplicación no se reiniciará automáticamente. Igual que @reboot en el crontab del usuario.

El caso es que no quiero redevise una rueda. Si hay algo que hace lo que quiero completo, lo usaría. Y solo si no hay nada, me gustaría recurrir a un enfoque hecho a mano.

(Estoy usando Debian estable, por lo que todavía no tengo systemd, por lo que yo entiendo).

Related of "Permita que los usuarios creen sus propios demonios"

Asegúrese de que los directorys principales de los usuarios estén disponibles de forma temprana (antes de que comience cron) y haga que ingresen una input en crontab:

 @reboot /home/username/bin/start_at_boot 

Esta es una característica estándar de un cron daemon que debe estar en su sistema Debian.

El start_at_boot script puede iniciar directamente los daemons de los usuarios o iniciar alguna herramienta que administre y observe los daemons de los usuarios (cuya configuration puede estar bajo el control del usuario individual). He usado varios packages para esto, por ejemplo, procer que viene con mongrel2 . Pero ahora tienden a usar supervisor (estar en python hace que sea más fácil de entender y extender una vez que surge la necesidad).

Para otra progtwigción (o para poner en marcha a un daemon inactivo), los usuarios pueden hacer inputs normales en su propio crontab.

Si está en systemd, es trivial, porque systemd no requiere el formalismo "fork / exec / pidfile". Simplemente crea un file de service y systemd se encarga de iniciar el process, reiniciar una instancia bloqueada, etc. También puede permitir fácilmente a los usuarios crear sus propios files de service (o incluso ejecutarlos no como raíz sino como su propio usuario, si eso es útil de alguna manera).

En los scripts de sistema V, la forma más estándar es iniciarlos en /etc/rc.local . El reinicio automático no suele funcionar incluso para los demonios del sistema. Sin embargo, podría escribir un contenedor de shell que ejecute el process en un bucle (posiblemente con un sleep 1 para evitar problemas con processs que fallan constantemente). Sin embargo, en este sistema, tienes muy poco control sobre los demonios individuales.

También puede crear initscripts y ponerlos en un directory especial accesible para el usuario en rc.d y modificar el sistema de inicio del service.