L'exécution de processus Java en tant que Service sous Linux
J'ai besoin d'exécuter un processus Java en tant que service (Red Hat 6.4) Linux (Il a besoin pour fonctionner au moment du démarrage et de rester). J'ai la plupart du temps de travail, sauf pour des il ne semble pas le statut correctement dans le "Service de Configuration de la fenêtre".
Pour illustrer, j'ai fait un programme Java simple:
package service;
public class JavaService {
public static void main(String args[]){
System.out.println("Starting Java-Service");
while(true){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Java-Service is still running..");
}
}
}
J'en pot, et de le mettre à l'emplacement suivant: /opt/service/lib
Ensuite, j'ai créé ce script: /opt/service/bin/run_java_service
#!/bin/tcsh
#
# chkconfig: 2345 80 30
# description: java-service Service
setenv JAVA_SERVICE_HOME /opt/service
setenv CLASSPATH $JAVA_SERVICE_HOME/lib/JavaService.jar
setenv SERVICE_PID `ps aux | grep JavaService | grep -v grep | awk '{print $2}'`;
if ( (stop == $1 || restart == $1)) then
echo "java-service stop";
kill -9 $SERVICE_PID
setenv SERVICE_PID
endif
if ( start == $1 || restart == $1 ) then
if($SERVICE_PID) then
echo "java-service is already running"
else
echo "java-service start";
java service.JavaService&
endif
endif
if (status == $1) then
if($SERVICE_PID) then
echo "java-service (pid $SERVICE_PID) is running...";
else
echo "java-service is stopped";
endif
endif
Ensuite, j'ai créé un lien symbolique dans /etc/rc.d/init.d répertoire et de l'ajouter à la chkconfig:
sudo ln –s /opt/service/bin/run_java_service /etc/rc.d/init.d/java-service
sudo chkconfig --add java-service
À ce stade, des commandes comme ce travail comme prévu à partir de la ligne de commande:
sudo service java-service stop
sudo service java-service start
sudo service java-service status
Le problème, c'est que les choses ne sont pas les états d'avancement correctement dans le "Service de Configuration de la boîte de dialogue". Par exemple, dans cette capture d'écran, j'ai cliqué sur le Bouton d'Arrêt" et il apparaît toujours comme "branché".
Quelle pièce du puzzle qui me manque?
racine commence le travail, et de la racine arrête le travail
OriginalL'auteur mainstringargs | 2013-06-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer d'utiliser jsvc de apache. Tomcat utiliser pour être lancé en tant que service.
OriginalL'auteur baraber