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
는 명령 줄에서 예상대로이 작품과 같이 명령한다. 예를 들어,이 스크린 샷에서 "중지 버튼"을 클릭했는데 여전히 "연결됨"으로 표시됩니다.
나는 실종 퍼즐의 어떤 부분?
어떤 사용자가 작업을 시작하고 어떤 사용자가 클릭을 멈추고 있습니까? –
루트가 작업을 시작하고 루트가 작업을 중지합니다. – systemoutprintln