作为非 root 用户,我想在系统启动时运行后台作业。这是一种不需要 root 权限的服务。有办法做到吗?
一种方法是输入sudo -u user command
,rc.local
但编辑rc.local
需要 root 权限。
另一种方法是每分钟启动它cron
并检查是否有任何正在运行的实例,但首先它会不必要地唤醒系统,其次,在检查正在运行的实例时可能会存在竞争条件。
第三种方法是在 中运行它~/.bash_profile
,但我想在没有用户登录的情况下启动它。
答案1
如果您的版本有此功能,您可以使用 cron @reboot
。从人5 crontab:
可能会出现八个特殊字符串之一,而不是前五个字段:
string meaning ------ ------- @reboot Run once, at startup. …
您可以使用该命令编辑用户本地 crontab,crontab -e
无需 root 权限。然后添加以下行:
@reboot /usr/local/bin/some-command
现在您的命令将在启动时运行一次。