非root用户如何自动启动后台程序?


14

作为非root用户,我想在系统启动时运行后台作业。这是一种不需要root特权的服务。有办法吗?

一种方法是把sudo -u user commandrc.local,但编辑rc.local需要root权限。

另一种方法是cron每分钟启动一次,并检查是否有任何正在运行的实例,但是首先,它会不必要地唤醒系统;其次,在检查正在运行的实例时会出现争用情况。

第三种方法是在中运行它~/.bash_profile,但是我想在没有用户登录的情况下启动它。

Answers:


17

如果您的版本具有此@reboot功能,则可以使用cron 。来自man 5 crontab

代替前五个字段,可能会出现八个特殊字符串之一:

  string         meaning
  ------         -------
  @reboot        Run once, at startup.
  …

您可以使用crontab -e不带root特权的命令来编辑用户本地crontab 。然后添加以下行:

@reboot /usr/local/bin/some-command

现在,您的命令将在引导时运行一次。


crontab -e在下面创建cron文件是否异常/tmp
好战的黑猩猩

@Elliott取决于您的编辑器。最后,文件将以结尾/var/spool/cron/crontabs
Marco Marco
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.