java - pasar - creacion de aplicaciones moviles en netbeans
Cómo convertir una aplicación Java existente a un servicio SYS V(daemon) (2)
Echa un vistazo a Apache Commons Daemon .
Tiene el iniciador ''jsvc'' que admite el inicio y la detención de daemons basados en Java (servicios).
Esta pregunta ya tiene una respuesta aquí:
- ¿Cómo demonizar un programa Java? 11 respuestas
Tengo una aplicación Java, para iniciarlo uso
java -jar myapp.jar
Para detenerlo, uso CTRL + C.
Ahora necesito convertir esa aplicación a algo con lo que pueda comenzar:
/etc/init.d/myapp start
Y puedo parar con:
/etc/init.d/myapp stop
El problema se trata de guardar el PID del proceso, creo que vi en alguna parte una receta para hacer esto, no recuerdo dónde y no puedo encontrarlo.
Vi que hay un proyecto llamado Java Server Wrapper , pero busco algo gratuito que no limite el uso de la memoria. Y creo que este trabajo podría hacerse en un único script bash.
En primer lugar, guardar el PID en * nix:
$ ./yourprogram &
$ echo $! > /var/run/yourpid
yourpid ahora contendrá el PID de su pgrama, y / var / run es el lugar adecuado para ponerlo.
Lo anterior se puede poner en su script de "inicio". El script "detener" puede mirar a yourpid para saber qué matar.
Si quieres ser más elegante y detener tu aplicación correctamente, puedes consultar el código fuente de org.apache.catalina.startup.Catalina.java de Tomcat sobre cómo implementar los ganchos de apagado adecuados.
En segundo lugar, las secuencias de comandos anteriores "stop" y "start" se pueden poner en /etc/init.d/mystopstartscript:
#!/bin/bash
# processname: yourprogram
# pidfile: /var/run/yourpid
case $1 in
start)
sh /some/where/start.sh
;;
stop)
sh /some/where/stop.sh
;;
restart)
sh /some/where/stop.sh
sh /some/where/start.sh
;;
esac
exit 0
Esta es una solución bastante local, con ideas tomadas principalmente del buen Tomcat, pero espero que ayude :)