-1
我執行一個shell腳本作爲cron作業的每一分鐘就像這樣:克朗的Unix不予執行
* * * * * /bin/bash /var/www/html/stream.sh
腳本包含以下代碼:
#!/bin/sh
if ps -ef | grep -v grep | grep get_tweets.php ; then
exit 0
else
nohup php /var/www/html/streaming/db/get_tweets.php > /dev/null &
exit 0
fi
我也運行的另一個shell腳本作爲cron,兩者之間的唯一區別是「get_tweets」被替換爲「parse_tweets_keyword」並且cron被執行如此:
* * * * * /bin/bash /var/www/html/process-check.sh
問題是,而後者的cron工作完全正常,第一似乎並不成功運行腳本,但是當我運行命令:
nohup php /var/www/html/streaming/db/get_tweets.php > /dev/null &
腳本運行完美,所以我不完全確定問題是什麼。所有文件的權限是正確和可執行的,我在crontab下以root身份運行crons,並且我試圖執行的兩個PHP腳本都作爲後臺進程運行。
如果有人能幫助或知道這個問題,將不勝感激。我也願意以更好的方式運行PHP腳本,或許作爲crontab中的一行,而不是運行shell腳本來通過cron運行PHP腳本。
它們是由同一用戶運行嗎?如果沒有,具有'get_tweets.php'的用戶的路徑上有php嗎? – prodigitalson 2014-10-10 21:00:15
Yikes ...避免'grep -v grep',並使用像'ps axc | grep ...' – 2014-10-10 21:00:39
兩者都以超級用戶身份運行,儘管我嘗試以不同的用戶身份運行並出現相同的問題。 ps axc實際上並不實際顯示PHP腳本名稱本身? – 2014-10-10 21:12:18