2011-03-29 50 views
1

我試圖創建一個phpscript,它創建一個啓動應用程序並在1小時後關閉它的crontab。我已經想出瞭如何啓動應用程序以及如何殺死進程。剩下的就是創建cronjob,從現在開始執行它1小時,然後刪除它自己。 這可能嗎?如果是這樣,怎麼樣?創建執行php腳本的crontab並在1小時後自行刪除

回答

3

您是否想過使用at守護進程?它不像cron那樣受歡迎,但是完全符合你的要求:在特定的時間點運行一次特定的命令。

如果您可以在服務器上執行shell腳本,您可以編寫一個在後臺運行該程序的shell腳本,休眠1小時,然後在必要時停止它。這將減少at/cron隊列項目的數量。

+0

+1因爲這基本上是'at'的意思。 – wimvds 2011-03-29 11:38:07

+0

如果我在將來使用「at」做1小時的事情,它會每隔一小時繼續做一次,還是會在使用後自行移除? – Kraffs 2011-03-29 12:35:25

+0

用'at'將命令放到隊列中,執行後命令被刪除。因此,他們運行一次應該符合您的要求。 – 2011-03-29 15:02:56

0

我會創建2個cron作業:一個啓動該進程,一個小時後啓動該進程。

+0

如果我殺死了那個cron進程,它是否也會終止子進程呢? – Kraffs 2011-03-29 10:45:38

+0

我想說點別的:我會開始一個cron作業,除了啓動我想要運行的腳本然後終止之外,沒有其他更多的事情。第二個cron選項卡將終止腳本進程。 – KingCrunch 2011-03-29 10:59:00

+0

爲什麼第一個cron是必需的呢?我可以在php中使用shell_exec來啓動bash腳本。 – Kraffs 2011-03-29 11:04:43

1

要啓動應用程序只需創建一個crontab:

crontab -e 

在命令提示符。然後,寫出來與大家希望它開始的時間在crontab和路徑PHP腳本存儲在哪裏:

10 10 * * * /Users/you/phpinhere/myphp.php &> /Users/you/output 

您可以直接到一個輸出文件,那麼你可以閱讀,如果有任何區域錯誤等 然後在第一個小時之後再做一個小時的cron,然後運行腳本來殺死它。

+0

我覺得你誤會了我,我想要phpfile來創建cron。 – Kraffs 2011-03-29 11:03:54