2014-04-01 37 views
0

我在/etc/init/ Ubuntu中創建了以下ProcessRunner.conf。在命令行通過crontab安排UpStart初始化腳本

# When to start the service 
start on runlevel [2345] 

# When to stop the service 
stop on runlevel [016] 

# Automatically restart process if crashed 
respawn 

# Essentially lets upstart know the process will detach itself to the background 
expect fork 

# Run before process 
pre-start script 
    [ -d /var/run/ProcessRunner ] || mkdir -p /var/run/ProcessRunner 
    java -Dlog4j.configuration=log4j_process1.xml -classpath /home/devuser/apps/ProcessExecutor:/home/devuser/apps/ProcessExecutor/ProcessExecutor-1.0.jar com.process.ApplicationStartup & 
    echo $! > /var/run/ProcessRunner/ProcessRunner.pid; 
end script 

post-stop script 
    processid=$(cat /var/run/ProcessRunner/ProcessRunner.pid); 
    if ps -p $processid > /dev/null 
     then 
     sudo kill -9 $processid; 
    fi; 
end script 

我用下面的命令來啓動/停止這樣的:

sudo start ProcessRunner 
sudo stop ProcessRunner 

它工作正常。現在我需要安排這些。我在做下面這樣做:在命令行

我用下面的命令來啓動/停止這樣的:

$sudo crontab -e 

0 0 * * * * start ProcessRunner 
0 2 * * * * stop ProcessRunner 

但是,這是行不通的。請幫忙。 另外,我不希望這個過程在系統啓動時開始。我該如何配置?

+0

crontab的環境並沒有提供路徑,所以命令('開始ProcessRunner')必須包含完整路徑 –

+0

@RaulAndres如果這是一個shell腳本,我會提供一個絕對路徑。但這是一個響應啓動/停止命令的UpStart腳本。我能爲此提供什麼途徑? –

回答

2

Crontab環境不提供路徑,因此命令(啓動ProcessRunner)必須包含完整路徑。

命令「開始」和「停止」的完整路徑,而不是你的新貴的配置文件!

所以,從本質上講,你的crontab應該是這樣的:

0 0 * * * * /sbin/start ProcessRunner 
0 2 * * * * /sbin/stop ProcessRunner 
+0

我會嘗試。我不知道什麼是啓動,停止命令的絕對路徑。 –