我一直在閱讀有關如何運行 cronjob 并避免重復執行 cronjob 的信息。意思是,如果 cronjob 已經在運行,請不要運行它的另一個實例。如果 cronjob 沒有運行,則根據 cronjob 計劃再次開始運行該進程。flock()是這樣做的解決方案,如此處所述:https ://stackoverflow.com/a/33416116使用 flock 設置 cronjob 的方法如下:* * * * * flock -n /tmp/script.lockfile /usr/local/bin/script但是,當我嘗試使用 flock 在 cronjob 中設置我的 PHP 腳本時,它不起作用。我設置如下:*/10 * * * * flock -n /tmp/my-script.lockfile cd /var/www/html/wp-content/plugins/my-plugin/; php my-script.php我嘗試直接在控制臺中測試它,不使用 cronjob,并且在創建文件時my-script.lockfile不運行腳本my-script.php。錯誤說:flock:無法執行 cd:沒有這樣的文件或目錄無法打開輸入文件:my-script.php我在這里缺少什么嗎?flock()只適用于.sh腳本嗎?如果是這樣,我如何調整我的 PHP 腳本以使用它flock()?
1 回答

冉冉說
TA貢獻1877條經驗 獲得超1個贊
看起來如果你想使用更復雜的命令,你必須在它前面加上前綴-c
并包裝在"
.
*/10 * * * * flock -n /tmp/my-script.lockfile -c "cd /var/www/html/wp-content/plugins/my-plugin/; php my-script.php"
- 1 回答
- 0 關注
- 152 瀏覽
添加回答
舉報
0/150
提交
取消