我想在 Linux 安装启动时以 root 身份启动后台进程。我可以将其添加到目录或配置文件中吗?
答案1
基本上你有两个选择:
使用
cron
具有@reboot
时间规范的作业(crontab(1)
有关详细信息,请参阅手册页)由init系统启动它。对于 BSD/SysV 初始化样式,这意味着在某处添加一个脚本以在所需的运行级别中运行。对于 systemd,这涉及创建一个单元文件并由所需的目标需要它。
第一个解决方案更适合一台或两台机器的本地事物(因为它们更多的是配置事物);第二个适用于可能在更多系统上运行的服务/守护程序之类的东西 - 并且实际上应该打包以使维护更容易。
答案2
在启动时以 root 身份运行进程的最简单方法是从 启动它/etc/rc.local
。编辑该文件并添加一行,例如
/path/to/my/daemon &
然而,这并不是启动守护进程的好方法。您没有方便的方法来控制它(检查它是否正在运行、停止它、重新启动它等)。
有几个框架可以控制守护进程。它们与您的 init 系统紧密相关:Sysvinit、Upstart、Systemd 各有各的方式。检查系统上安装的内容(不同的 UNIX 变体有所不同,对于 Linux,它因发行版和管理员选择而异)。