当交流电拔掉时关闭电源的 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

参考

相关内容