Bash
為什麼腳本以使用者身份執行而不是以 cron 身份執行?
我有一個腳本檢查埠 4000 是否打開並正在偵聽,如果它返回 true,則啟動一個也輸出日誌文件的服務。如果我以使用者身份執行該腳本,則該腳本執行良好,但如果我將其添加為 cron,則它不會執行。我以root身份登錄,腳本由root擁有,腳本具有可執行權限,並且我
crontab -e
以root身份執行。#!/bin/bash if lsof -Pi :4000 -sTCP:LISTEN -t >/dev/null ; then return 1 else seoserver -p 4000 start > /var/www/vhosts/domain.com/httpdocs/seoserver.log & fi
這是我的 cron
*/5 * * * * /usr/bin/seoStart
Cron 不會以使用者擁有的公共環境變數開始,包括 $PATH。
您的 cron 中有完整路徑,這很好,但您還需要將其添加到您的腳本中。
which lsof
和
which seoserver
會給你完整的路徑。修改您的腳本以使用它而不是
lsof
andseoserver
。