Tengo un script simple escrito en Ruby.
- Me gustaría ejecutarla como una tarea en segundo plano (proceso o servicio demonio).
- Es más, quiero tener control sobre él para poder iniciarlo y detenerlo.
- Sería perfecto si el proceso pudiera iniciarse automáticamente cuando se reinicie mi VPS.
¿Hay alguna forma de hacer eso?
Respuesta1
De hecho, encontré la solución perfecta para eso. Requiere upstart
que sea mucho más fácil que los servicios estándar runit
y systemd
.
Aquí hay instrucciones más detalladas: http://blog.arkency.com/2014/06/create-run-and-manage-your-background-processes-with-upstart/
Y es algo como:
En /etc/init/my_program_upstart_script.conf
:
start on my_event
respawn
exec /home/my_user/my_program/my_program_executable
¡Sí, tan simple!
Simplemente ejecute el programa con sudo initctl emit my_event
.
Respuesta2
Una forma sencilla es crear scripts bash que inicien/detengan su aplicación. Siga /etc/init.d/skeleton
como ejemplo.
Instale su script:
sudo copy yourApplicationCtl /etc/init.d
sudo chmod +x /etc/init.d/yourApplicationCtl
Para iniciar su aplicación al iniciar el servidor y detenerla al apagar:
sudo update-rc.d yourApplicationCtl defaults
Si desea iniciar/detener manualmente su aplicación:
sudo service yourApplicationCtl start/stop
Los enlaces útiles son:Cómo iniciar Ubuntu, página de manual deactualización-rc.dyservicio