2011-10-30 26 views
3

我有一個crontab中的幾個php腳本,每天晚上都運行,彼此沒有關係,並且不會共享我所知道的資源。它們同時啓動,並且應該同時運行,每個都執行自己的任務 - 但是從它們每個打印的日誌中,我發現它們看起來像是在等待對方,就好像我只有一個線程一樣。有沒有辦法讓cron進程只讓它們中的一個運行,如果有的話,我該如何讓它們並行運行?不需要的cron鎖

編輯:我在'foreground'中運行cron指令,但是有誰知道在每行後面加&是否會對我有所幫助?

+1

對cron的標準行爲是雙叉(),然後運行除了xdebug之外,如果你的系統上有'strace',你可以用它來連接到正在運行的cron,並檢查發生了什麼,使用一個像這樣的命令行'strace -fv -ocron.out -p $(pidof cron)'並稍後用ctrl-C終止它。 –

回答

1

可能會出現一些鎖定,這會使腳本等待彼此完成。

你是否正在對同一張表進行任何可能導致鎖定的數據庫操作? (你也許拋出了XDebug到每簡介他們看到的內容花費的時間太長

查看XDebug的探查這裏的更多信息:http://xdebug.org/docs/profiler