2013-06-12 14 views
5

(Red Hat 6.4)LinuxでサービスとしてJavaプロセスを実行する必要があります(ブート時に実行して起動する必要があります)。私はそれが主に働いていますが、それは "サービス設定"ウィンドウで正しくステータスがないようです。説明するためにJavaプロセスを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.."); 
     } 
    } 
} 

私はそれを瓶詰めし、そしてこの場所でそれを置く:

その後は/ opt /サービス/ libに、私はこのスクリプトを作成しました:/opt /サービス/ 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 

私はその後/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はそれをサービスとして起動するために使用します。

関連する問題