2013-06-12 24 views
5

Bir Java işlemini (Red Hat 6.4) Linux'ta hizmet olarak çalıştırmam gerekiyor (Önyükleme sırasında çalışması ve kalması gerekir). "Hizmet Yapılandırması" penceresinde doğru şekilde görünmüyor olması dışında çoğunlukla çalışıyorum. Örnek olarakJava işlemini Linux'ta Hizmet Olarak Çalıştırma

, basit bir Java programı yaptı:

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.."); 
     } 
    } 
} 

O kadar jarred ve bu konumda koydu:

Sonra/opt/hizmet/lib, bu senaryoyu oluşturuldu:/opt/hizmet/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 

sonra /etc/rc.d/init.d dizininde bu bir sembolik oluşturulan ve chkconfig bunu ekledi:

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

sorun şeyler "Hizmet Yapılandırması" iletişim kutusunda doğru statusing olmamasıdır: Bu noktada

sudo ln –s /opt/service/bin/run_java_service /etc/rc.d/init.d/java-service 
sudo chkconfig --add java-service 
, komut satırından beklendiği gibi bu işi gibi komutları. Örneğin, bu ekran görüntüsünde, "Durdurma Düğmesi" ni tıklattım ve hala "takılı" olarak görünüyor.

enter image description here

ben eksik bulmacanın Ne parçası mı?

+0

hangi kullanıcı işe başlıyor ve hangi kullanıcıların durduğunu tıklıyor? –

+0

kökü işi başlatır ve kök işi durdurur – systemoutprintln

cevap

2

Apache'den jsvc kullanmayı deneyebilirsiniz. Tomcat, hizmet olarak kullanılmak üzere kullanıyor.