No tengo idea por dónde empezar a buscar. He estado leyendo sobre demonios y no entendí el concepto.
Más detalles :
- He estado escribiendo un rastreador que nunca se detiene y rastreadores a través de RSS en Internet.
- El rastreador se ha escrito en Java, por lo tanto, es un jar en este momento.
- Soy administrador en una máquina que tiene Ubuntu 11.04.
- Hay algunas posibilidades de que la máquina se bloquee, por lo que me gustaría que el rastreador se ejecute cada vez que inicie la máquina.
- Además, me gustaría que siguiera funcionando incluso cuando me desconectara. No estoy seguro de que esto sea posible, pero la mayoría de las veces estoy desconectado y todavía quiero rastrearlo.
¿Algunas ideas? ¿Alguien me puede apuntar en la dirección correcta?
Solo busco la solución más simple.
¡Sí! Es posible. :) Upstart es el camino a seguir para asegurarse de que el servicio se mantenga en ejecución. Tiene cinco paquetes, todos instalados por defecto:
El aprendizaje es muy agradable y vale la pena. Upstart tiene un sitio web: http://upstart.ubuntu.com/
fuente
3 sugerencias rápidas ...
Cree una secuencia de comandos S tart en
/etc/rc3.d
(modo de consola multiusuario) con las secuencias de comandos K ill correspondientes/etc/rc.0
y/etc/rc6.d
elimine su programa Java de forma controlada cuando el sistema se apaga (nivel de ejecución 0) o se reinicia (nivel de ejecución 6) Vea una introducción a los niveles de ejecución .Es posible que pueda iniciar su aplicación Java en el nivel de ejecución 2 (rc2.d) pero, como rastreador, necesitará TCP / IP. Así que asegúrese de que su servicio de red esté disponible / iniciado en su nivel de ejecución 2 de antemano. La creación de redes está definitivamente en el nivel de ejecución 3.
/etc/init.d
contiene todos los scripts de inicio / eliminación reales./etc/rcN.d
los directorios solo contienen enlaces a ellos, con el prefijo S o K para iniciarlos o eliminarlos respectivamente, por nivel de ejecución N.Un proceso ejecutado por
crond
debe persistir entre los cierres de sesión. Quizás lo agregue a su crontab.Un proceso ejecutado con
nohup
también debe persistir. Ver nohup: ejecuta un comando incluso después de cerrar sesión .De manera predeterminada,
myapp.jar
la salida estándar de irá a un archivo llamado./nohup.out
, o$HOME/nohup.out
si el primero no se puede escribir.fuente
También tenga en cuenta al hacer aplicaciones con:
Tener permisos 0755 y usar u obtener antes de su .sh la ruta. Digamos que su script está en /root/test.sh, primero debe cambiar a CD
/root/
antes de accedertest.sh
.Entonces, la mejor manera es hacer un SH en init.d y allí cambiar la ruta a su
sh
y ejecutarlo en la función de inicio.fuente
Scripts de inicio simples con comprobación de la versión Java para el agente de autenticación de Linux y el agente de autenticación de Windows .
fuente
La forma más fácil es usarlo
supervisord
. Por favor vea los detalles completos en http://supervisord.org/También puede ver más detalles aquí:
Ejecutar un archivo jar ejecutable cuando se inicia el sistema
https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps
fuente