當交流電源未插入時關閉電源的 Cron 作業

當交流電源未插入時關閉電源的 Cron 作業

我正在嘗試運行一個簡單的 bash 腳本,如果我的筆記本沒有透過 cron 作業插入交流電,腳本會關閉它。

我的腳本如下:

#!/bin/bash

if ! on_ac_power; then 
    poweroff          
fi

我已經將 cron 配置為每分鐘運行一次,如下所示:

*/1 * * * * /home/user/Documents/script.sh

如果我手動運行該腳本,它可以正常工作,但除此之外,它在 cron 下似乎沒有任何效果。

我在這裡缺少什麼?

答案1

首先,我沒有在 root 下運行我的 cron。

顯然,要讓 cron 在 root 下運行,您必須添加它sudo crontab -e,任何僅添加的內容crontab -e都不會以 sudo 運行。

其次,如參考文獻中所指出的:

預設情況下,cron 在非常有限的環境中運行,因此從用戶終端通過命令名運行的許多命令需要 crontab 中的完整路徑或 crontab 開頭的聲明來擴展路徑。

所以我最終在腳本中替換poweroff為,現在它按預期運行。/sbin/shutdown

#!/bin/bash

if ! on_ac_power; 
then 
    /sbin/shutdown        
fi

參考

相關內容