2013-06-12 2 views
5

Java 프로세스를 (Red Hat 6.4) Linux에서 서비스로 실행해야합니다 (부팅 할 때 실행해야합니다). 나는 그것이 "서비스 구성"창에서 올바르게 상태가 아닌 것 외에는 대부분 작동합니다. 설명하기 위해Linux에서 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.."); 
     } 
    } 
} 

나는 그것을 jar로, 그리고이 위치에 넣어 :

그리고/옵션/서비스/lib에,이 스크립트를 생성 :/옵션/서비스/빈/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 

나는 다음의 /etc/init.d 디렉토리에이에 심볼릭 링크를 생성하고 chkconfig를에 추가 :

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

문제는 일들이 "서비스 구성"대화 상자에서 제대로 statusing되지 않는 것입니다 :이 시점에서

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

는 명령 줄에서 예상대로이 작품과 같이 명령한다. 예를 들어,이 스크린 샷에서 "중지 버튼"을 클릭했는데 여전히 "연결됨"으로 표시됩니다.

enter image description here

나는 실종 퍼즐의 어떤 부분?

+0

어떤 사용자가 작업을 시작하고 어떤 사용자가 클릭을 멈추고 있습니까? –

+0

루트가 작업을 시작하고 루트가 작업을 중지합니다. – systemoutprintln

답변

2

아파치에서 jsvc을 사용해 볼 수 있습니다. Tomcat은이 서비스를 사용하여 서비스로 시작합니다.

관련 문제