start-stop-daemon y el programa java
arm angstrom-linux (2)
estás buscando una forma de correr y ser capaz de monitorearlo?
¿Has probado aún más el lote de programación?
por ejemplo
@echo off
cd DirectoryOfFiles
echo "Starting up..."
java -Xmx512m mainFile
pause
mainFile = main.java? DirectoryOfFiles = el directorio en el que tiene todos los archivos de clase, si el archivo en ejecución es el mismo, simplemente elimine esta línea
con suerte esto es lo que estás pidiendo
Me está costando muchísimo conseguir que un programa Java se inicie correctamente en un script de inicio con start-stop-daemon. Escribí el script de inicio y parece ejecutarse, pero nunca más hay un proceso que represente el programa en ejecución.
Aquí hay un fragmento de mi script de inicio
#! /bin/sh
#
#
DAEMON="/usr/bin/java"
DAEMON_ARGS="-server -cp <bunch of RMI arguments and classpath stuff> -jar <absolute path>/myprog.jar"
PIDFILE="/var/run/myprog.pid"
case "$1" in
start)
echo -n "Starting myprog"
start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --startas "$DAEMON" -- $DAEMON_ARGS
echo "."
;;
Cuando intento lanzarlo a través de /etc/init.d, obtengo lo siguiente:
/etc/init.d# /etc/init.d/myscript start
Iniciando myprogStarting / usr / bin / java ...
Detatching para iniciar /usr/bin/java...done.
.
Después, no hay un proceso de intérprete de Java en ejecución, ejecutando myprog.jar
Probé varias combinaciones de --exec, --start con más o menos los mismos resultados. Si pudiera obtener más visibilidad sobre lo que está sucediendo, estoy seguro de que podría resolver esto, pero no estoy seguro de cómo hacer eso.
¿Alguna sugerencia?
(Estoy ejecutando Angstrom en una plataforma ARM integrada, por lo que Java Service Wrapper no es realmente una opción viable, es decir, no creo que esté disponible para ARM)
Estoy atascado así que cualquier consejo sería muy apreciado.
Gracias.
Dos cosas para probar, primero intente eliminar --startas
y use --exec
en --exec
lugar como --exec
:
start-stop-daemon --start --pidfile "$PIDFILE" --chuid "myuser" --verbose --background --make-pidfile --exec "$DAEMON" -- $DAEMON_ARGS
En segundo lugar, ya que está utilizando --background
try especificando la opción --chdir
, si no lo hace, el directorio de trabajo termina siendo /
.
Terminé tropezando con tu pregunta tratando de resolver mi problema que finalmente fue resuelto por --chdir
, creo que también resolverá el tuyo.