J'ai bien tout lu post_it... et la fameuse méthode daemonize est composée uniquement des deux lignes qui ferment les flux de sortie du shell, celle qu'il ajoute ultérieurement ne fait qu'effacer le fichier contenant le pid à la fermeture de la jvm. Et OUI c'est une boucle infinie, c'est bien le but. Je pense que tu devrais lire la fameuse page.
Taz > dans l'exemple il n'utilise que &. En fait c'est sensé rendre la main lorsqu'il se détache du sous-shell dans le script (ici le vrai programme):
launch()
{
/bin/sh << EOF
$JYTHON -Ddaemon.pidfile=$PIDFILE $MAIN $PARAMS <&- &
pid=\$!
echo \${pid}
EOF
}
daemon_pid=`launch`
echo $daemon_pid
|
Mon problème est qu'il ne sort jamais de la procédure launch(), contrairement à ce qui est décrit dans la page, et le programme tourne bien et a bien appelé daemonize (il entre alors dans une boucle infinie sur un autre thread, faisant server xmlrpc). Alors oui j'utilise jython, mais ma méthode daemonize est ainsi:
def daemonize(self):
f = self.getPidFile()
if f: f.deleteOnExit()
System.out.close()
System.err.close()
sys.stdout.close()
sys.stderr.close()
|
En ajoutant disown, ça ne change pas le résultat, il reste bloqué dans le sous-shell. Quand il est bloqué, depuis un autre shell:
$ ps -ef | grep java
g 32423 32422 1 10:20 pts/0 00:00:05 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32424 32423 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32425 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32426 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32427 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32428 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32429 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32430 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32431 32424 0 10:20 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32432 32424 0 10:21 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32434 32424 0 10:21 pts/0 00:00:00 /usr/lib/j2sdk1.5-sun/jre/bin/ja
va -Dpython.home=/home/g/bin/jythonRelease_2_2alpha1 -classpath /home/g/bin/jyth
onRelease_2_2alpha1/jython.jar:/home/g/tmp/a/trunk/bin/genersys-builder.jar:/hom
e/g/tmp/a/trunk/lib/xmlrpc-2.0.jar:/home/g/tmp/a/trunk/lib/xstream-1.1.2.jar:/ho
me/g/tmp/a/trunk/lib/commons-codec-1.3.jar:/home/g/tmp/a/trunk/lib/xpp3-1.1.3.4d
_b4_min.jar:/home/g/tmp/a/trunk/lib/log4j-1.2.11.jar org.python.util.jython -Dda
emon.pidfile=/var/run/genersys-builder.pid /home/g/tmp/a/trunk/src/python/main.p
y -d
g 32450 32442 0 10:25 pts/1 00:00:00 grep java
|
Merci pour les réponses.