2013-06-12 12 views
5

Potrzebuję uruchomić proces Java jako usługę w systemie (Red Hat 6.4) Linux (musi działać podczas rozruchu i pozostać w górze). Mam go głównie działa, z wyjątkiem tego, że nie wydaje się, aby poprawnie status w oknie "Konfiguracja usługi".Uruchamianie procesu Java jako usługi w systemie Linux

Aby zilustrować, zrobiłem prosty program Java:

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.."); 
     } 
    } 
} 

I słoikach, że do góry, i umieścić go w tej lokalizacji:/opt/usług/lib

Potem stworzył ten skrypt:/opt/usługa/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 

potem stworzył dowiązania do tego w katalogu /etc/rc.d/init.d i dodaje go do chkconfig:

sudo ln –s /opt/service/bin/run_java_service /etc/rc.d/init.d/java-service 
sudo chkconfig --add java-service 

W tym momencie, jak nakazuje to działa zgodnie z oczekiwaniami z wiersza poleceń:

sudo service java-service stop 
sudo service java-service start 
sudo service java-service status 

Problem polega na tym, że rzeczy nie są nadawanie statusu prawidłowo w oknie „Konfiguracja usługi”. Na przykład na tym zrzucie ekranu kliknąłem przycisk "Stop" i nadal wyświetla się jako "podłączony".

enter image description here

Co kawałek układanki mi brakuje?

+0

jaki użytkownik uruchamia zadanie i co użytkownicy klikają dalej? –

+0

root uruchamia zadanie, a root zatrzymuje zadanie – systemoutprintln

Odpowiedz

2

Możesz spróbować użyć jsvc z apache. Tomcat używa go do uruchomienia jako usługa.

Powiązane problemy