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

Wu *_*eng 14 cron not-root-user services

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

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

另一种方法是cron每分钟启动它并检查任何正在运行的实例,但首先它会不必要地唤醒系统,其次,在检查运行实例时可能存在竞争条件。

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

Mar*_*rco 18

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

可能会出现八个特殊字符串之一,而不是前五个字段:

  string         meaning
  ------         -------
  @reboot        Run once, at startup.
  …
Run Code Online (Sandbox Code Playgroud)

您可以在crontab -e没有 root 权限的情况下使用该命令编辑用户本地 crontab 。然后添加以下行:

@reboot /usr/local/bin/some-command
Run Code Online (Sandbox Code Playgroud)

现在您的命令将在启动时运行一次。