2014-07-10 150 views
0

我有啓動Java應用程序在CentOS 6 服務這是一個腳本:如何運行Java服務作爲在CentOS非root用戶6

#!/bin/sh 
# chkconfig: - 80 20 

SERVICE_NAME=cn4server 
PATH_TO_JAR=/usr/local/share/myserver/cn4server.jar 
PID_PATH_NAME=/usr/local/share/myserver/cn4server-pid 
case $1 in 
    start) 
     echo "Starting $SERVICE_NAME ..." 
     if [ ! -f $PID_PATH_NAME ]; then 
      nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & 
         echo $! > $PID_PATH_NAME 
      echo "$SERVICE_NAME started ..." 
     else 
      echo "$SERVICE_NAME is already running ..." 
     fi 
    ;; 
    stop) 
     if [ -f $PID_PATH_NAME ]; then 
      PID=$(cat $PID_PATH_NAME); 
      echo "$SERVICE_NAME stoping ..." 
      kill $PID; 
      echo "$SERVICE_NAME stopped ..." 
      rm $PID_PATH_NAME 
     else 
      echo "$SERVICE_NAME is not running ..." 
     fi 
    ;; 
    restart) 
     if [ -f $PID_PATH_NAME ]; then 
      PID=$(cat $PID_PATH_NAME); 
      echo "$SERVICE_NAME stopping ..."; 
      kill $PID; 
      echo "$SERVICE_NAME stopped ..."; 
      rm $PID_PATH_NAME 
      echo "$SERVICE_NAME starting ..." 
      nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & 
         echo $! > $PID_PATH_NAME 
      echo "$SERVICE_NAME started ..." 
     else 
      echo "$SERVICE_NAME is not running ..." 
     fi 
    ;; 
esac 

它運作良好,但有是一個問題:它作爲根運行。 如何更改腳本以代表其他用戶運行java應用程序?

+1

我相信這個問題屬於[Unix](http://unix.stackexchange.com/)堆棧。 –

+0

查看cron的'@ reboot'快捷方式,並將其放入各自用戶的crontab中。 –

+0

我試過了,但不幸的是,cron的@reboot不適用於CentOs上的非root用戶。這裏是一些解釋:http://unix.stackexchange.com/questions/109804/crontabs-reboot-only-works-for-root – Fedorov7890

回答

0

對我來說,解決辦法是: 的crontab與行非root用戶 @reboot /usr/local/share/myserver/cn4server.sh重啓

它workes精細,雖然這是一種解決方法。

相關問題