2014-02-12 33 views
0

我需要使用PHP來安排任務以便在本地計算機上稍後執行。我在避免cron,因爲我不需要隨着時間的推移重複任務。使用AT從PHP腳本中調度一次性事件腳本不工作

我試圖

$msg="at 10am today 
date > /path/path/date.txt 
\x04"; 
shell_exec($msg); // Nope 

$msg="at 10am today 
date > /path/path/date.txt 
".chr(4); 
shell_exec($msg); // Nope 

$msg=<<<EOT 
at 10am today 
date > /path/path/date.txt 
EOT; 
shell_exec($msg); // Nope 

shell_exec('echo "date > /some/path/date.txt" | at 10am today'); 

,在終端與PHP執行腳本時,但不是在我的網頁瀏覽器(http://localhost/script.php)將腳本時最後一行的作品。我也試過system,但沒有成功。順便說一句,echo shell_exec('ls /')沒有問題,所以我不認爲這是一個權限問題?有沒有人有任何想法有什麼問題?


背景資料:動機。這就是我建立一個基於Web的界面,用於指定並提交計算密集型模擬工作到遠程機器。我的PHP腳本從用戶輸入生成R和Matlab腳本,並且我可以很好地從PHP到那些機器。我不能將這些腳本安排在稍後執行,而與SSH會話無關。

+0

如果你只需要調度一些任務,crontab就足夠了http://en.wikipedia.org/wiki/Cron,不是? –

回答

1

正如你所建議的那樣,probem就是用來執行腳本的。我認爲經典的萬維網數據不能使用命令

添加專用用戶作爲普通用戶(adduser phpschedule); 然後改變執行php的用戶從apache傳統的www-data到phpschedule

+0

是的!謝謝!用戶是這個問題。 Mac OS X用戶:使用戶並適當更改httpd.conf。然後將該用戶添加到'/ var/at/at.allow' –

+0

我很高興我幫你 – gafreax