5
我需要在(Red Hat 6.4)Linux(它需要在啓動時運行並保持運行)運行Java進程作爲服務。我主要工作,除了它似乎沒有正確地在「服務配置」窗口中的狀態。在Linux中作爲服務運行Java進程
爲了說明這一點,我做了一個簡單的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..");
}
}
}
我震動,最多,並把它放在這個位置:/ opt /服務/ lib目錄
然後,我創造了這個腳本:的/ opt /服務/斌/ 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/rc.d/init.d目錄中創建一個符號鏈接到這一點,並把它添加到的chkconfig:
sudo ln –s /opt/service/bin/run_java_service /etc/rc.d/init.d/java-service
sudo chkconfig --add java-service
此時,命令,如這項工作作爲命令行預計:
sudo service java-service stop
sudo service java-service start
sudo service java-service status
的問題是,事情並沒有在「服務配置」對話框正確進展狀況。例如,在這個截圖中,我點擊了「停止按鈕」,它仍然顯示爲「插入」。
我失去了什麼一塊拼圖?
什麼用戶開始工作,用戶點擊什麼停止? –
root啓動作業,root停止作業 – systemoutprintln