如何在 Debian 中以 root 身份正确安排脚本自动运行

如何在 Debian 中以 root 身份正确安排脚本自动运行

我需要在 Debian 中以 root 身份安排脚本 (create_ap) 自动运行。我为此使用了 cron (sudo crontab -e)。它可以运行,但不起作用。我认为这是因为它的环境与我使用 sudo 从普通用户运行脚本时的环境不同。那么,如何正确安排该脚本的自动运行呢?

答案1

只需将必要的环境变量复制到自动运行脚本即可。看起来像黑客但有效。

更新。我需要在启动时以 root 身份自动运行脚本。如果从普通用户使用 sudo 手动启动,我工作得很好。但如果由 cron (@reboot 语句)启动,它就不起作用。为了找出不同之处,我创建了一个小脚本,将这些命令的输出转储到文件中:id、env、iwconfig。运行 2 次:来自用户的 sudo 并由 cron 调度。从这些日志中发现cron以截断的环境启动脚本,PATH看起来很短,它甚至找不到iwconfig。为了解决这个问题,我使用文本编辑器将 2 个环境变量(PATH 和 SHELL)复制到原始脚本中。脚本现在看起来相同,只是顶部有 2 个附加字符串:

导出 PATH=full_path_from_env

导出SHELL=/bin/bash

并且工作正常。

相关内容