2013-06-12 29 views
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 

的問題是,事情並沒有在「服務配置」對話框正確進展狀況。例如,在這個截圖中,我點擊了「停止按鈕」,它仍然顯示爲「插入」。

enter image description here

我失去了什麼一塊拼圖?

+0

什麼用戶開始工作,用戶點擊什麼停止? –

+0

root啓動作業,root停止作業 – systemoutprintln

回答

2

你可以嘗試從apache使用jsvc。 Tomcat使用它作爲服務啓動。

相關問題