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

即使没有人登录到PC,如何配置它也可以自动启动?

评论

@ user154721您为update-rc.d提供了哪些参数以使自动启动工作?我尝试了各种选择,但没有任何运气。

在多个位置的自动启动清单或* .service文件以及init.d或crontab中配置自动启动程序。请参阅:unix.stackexchange.com/a/525845/43233

#1 楼

sudo update-rc.d minidlna defaults


这会将服务添加到自动启动系统中。但是如果您得到:

System start/stop links for /etc/init.d/minidlna already exist.


执行命令

sudo update-rc.d minidlna enable


PS:有关更多详细信息,请参见键入命令man update-rc.d,更新-rc.d的手册页

评论


谢谢,但是如果在运行该命令时得到此输出怎么办?:/etc/init.d/minidlna的系统启动/停止链接已经存在。

–里卡多·雷耶斯(Ricardo Reyes)
10-10-25在16:02



如果minidlna不写入任何日志文件,则在任何地方都找不到它。它是否可能因为启动时没有网络连接而失败?如果可能,请尝试查看配置,打开调试和/或日志记录以找出问题所在。

–拉瑟·波尔森
2010-10-25 16:20

@RicardoReyes使用sudo update-rc.d -f minidlna remove删除现有链接。

–狗狗天气
2014年6月9日下午6:04

我收到以下错误update-rc.d:/etc/init.d/usermanage:文件不存在

– Rizwan Patel
16年3月14日在8:17

我也是,收到相同的错误update-rc.d:/etc/init.d/mongod:文件不存在。然后,sudo systemctl enable mongod.service为我工作。

–Explorer
19年1月25日,下午3:42

#2 楼



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

update-rc.d service_name defaults



要删除:

update-rc.d -f service_name remove



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

示例:

update-rc.d tomcat7 defaults


评论


当我执行此命令时,出现“ /etc/init.d/tomcat7的系统启动/停止链接”。但是,当我重新启动时,它无法启动tomcat,我总是必须做“ service tomcat7 start”。

–约翰·利特尔
16年2月8日在15:51

在我的情况下,sudo update-rc.d myservice默认总是完成而没有任何输出,并且该服务不会在启动时启动,或者使用sudo service myservice start也会无提示地完成。 sudo /etc/init.d/myservice启动工作但是

–axk
18年7月7日在21:40

#3 楼

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

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



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

vim /etc/rc.local



添加您要在启动过程中运行的脚本,例如:

sh /home/ivan/iptables.sh 
echo 'Iptable Configured!'


查看该文件中包含的注释,并确保出口0位于末尾。
保存文件。您的脚本将在启动过程中运行。


评论


在Ubuntu 12.04中对/etc/init.d/rc.local的注释说:“简短描述:运行/etc/rc.local(如果存在)”,那么也许将脚本添加到/etc/rc.local会是更好的主意?

–李圣贤
13年4月11日在5:29

该方法将向服务发出“关闭”命令还是在操作系统关闭时终止进程?

–Vadym Chekan
2014年7月25日,0:25

Vadim rc.local仅在引导时运行,而在关闭时则无法实现。该过程很可能在关机时被操作系统杀死。

– Weboide
2014年12月4日12:45

仅供参考:rc.local与将其添加到init之间的区别在于,rc.local是在init启动序列的末尾执行的,而不是它的一部分

–BobTuckerman
17年1月5日在21:18

#4 楼

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

sudo systemctl enable minidlna.service


并禁用从启动时开始再次进行以下操作:

sudo systemctl disable minidlna.service


此方法适用于所有可通过ls /lib/systemd/system/*.service找到的服务名称引用。

#5 楼

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