如何将服务配置为在启动时运行

Ric*_*yes 292 autostart services

如果我使用以下service命令手动启动它,我有一个运行良好的守护进程:

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 
Run Code Online (Sandbox Code Playgroud)

但它没有配置为在 PC 重新启动时自动启动。

即使没有人登录 PC,我如何将其配置为自动启动?

Las*_*sen 315

sudo update-rc.d minidlna defaults
Run Code Online (Sandbox Code Playgroud)

这应该将服务添加到自动启动系统。但是如果你得到:

System start/stop links for /etc/init.d/minidlna already exist.
Run Code Online (Sandbox Code Playgroud)

执行命令

sudo update-rc.d minidlna enable
Run Code Online (Sandbox Code Playgroud)

PS:有关更多详细信息,请通过键入命令查看 update-rc.d 的手册页man update-rc.d

  • @RicardoReyes 使用 `sudo update-rc.d -f minidlna remove` 删除现有链接。 (8认同)
  • 谢谢,但是如果我在运行该命令时得到这个输出怎么办?:`/etc/init.d/minidlna 的系统启动/停止链接已经存在。` (7认同)
  • 我收到以下错误 update-rc.d: /etc/init.d/usermanage: 文件不存在 (5认同)
  • 我也是,得到了同样的错误`update-rc.d: /etc/init.d/mongod: file does not exist`。然后,`sudo systemctl enable mongod.service` 对我有用。 (4认同)

小智 48

默认值 => 默认运行级别 2,3,4 和 5

例子:

update-rc.d tomcat7 defaults
Run Code Online (Sandbox Code Playgroud)

  • 当我执行这个命令时,我得到“/etc/init.d/tomcat7 的系统启动/停止链接已经存在”。但是,当我重新启动时,它不会启动 tomcat,我总是必须执行“service tomcat7 start”。 (2认同)

hhl*_*hlp 38

有时您需要在引导过程中运行脚本,例如在引导过程中运行 iptables 配置。因此,您不必每次重新启动时都手动运行脚本。

您可以通过将脚本添加到/etc/init.d/rc.local文件来在 Ubuntu 的启动过程中运行脚本。看下面的步骤。

  1. /etc/rc.local使用以下命令打开文件:

    vim /etc/rc.local
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在那里添加要在引导过程中运行的脚本,例如:

    sh /home/ivan/iptables.sh 
    echo 'Iptable Configured!'
    
    Run Code Online (Sandbox Code Playgroud)
  3. 查看该文件中包含的注释,并确保结尾处是 exit 0。

  4. 保存文件。您的脚本将在启动过程中运行。

  • Ubuntu 12.04 中 /etc/init.d/rc.local 的评论说“简短描述:如果 /etc/rc.local 存在,则运行它”,所以也许将脚本添加到 /etc/rc.local 会更好? (2认同)

tan*_*ius 31

从 Ubuntu 15.10 (resp. Debian 8 "jessie") 开始,您必须使用以下命令将服务配置minidlna为在启动时运行:

sudo systemctl enable minidlna.service
Run Code Online (Sandbox Code Playgroud)

并在启动时再次禁用它:

sudo systemctl disable minidlna.service
Run Code Online (Sandbox Code Playgroud)

这适用于您可以使用ls /lib/systemd/system/*.service.