在现代 Ubuntu 系统(15.10 及以上版本)上:

在现代 Ubuntu 系统(15.10 及以上版本)上:

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

ricardo@ricardo-laptop:~$ sudo service minidlna start                   
 * Starting minidlna minidlna                                                              [ OK ] 

但它没有配置为在电脑重启时自动启动。

如何配置它以使其自动启动,即使没有人登录到电脑?

答案1

在现代 Ubuntu 系统(15.10 及以上版本)上:

sudo systemctl enable minidlna.service

在 15.10 之前的 Ubuntu 版本上:

sudo update-rc.d minidlna defaults

如果得到System start/stop links for /etc/init.d/minidlna already exist.,则运行以下命令:

sudo update-rc.d minidlna enable

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

答案2

自从Ubuntu 15.10 及更高版本(分别为 Debian 8“jessie”及更新版本),您必须使用以下命令来配置您的服务minidlna以在启动时运行:

sudo systemctl enable minidlna.service

并再次禁用它在启动时启动:

sudo systemctl disable minidlna.service

这适用于系统上所有可用的服务名称。要查找可用的服务名称,只需列出服务文件的文件名:

ls /lib/systemd/system/*.service
ls /etc/systemd/system/*.service

答案3

  • 要在启动时启动守护程序:

    update-rc.d service_name defaults
    
  • 去除:

    update-rc.d -f service_name remove
    

defaults => 默认运行级别 2、3、4 和 5

例子:

update-rc.d tomcat7 defaults

答案4

在 ubuntu 版本 18.04 TLS 中,我发现如果启动脚本中没有如下所示的特定注释块,则 update-rc.d 无法正常工作:

### BEGIN INIT INFO
# Provides: myprogram
# Required-Start: $ local_fs $ remote_fs $ syslog $ network $ time
# Required-Stop: $ local_fs $ remote_fs $ syslog $ network
# Default-start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: myprogram some description
### END INIT INFO

相关内容