启动时启动的服务不适用于 update-rc.d 命令

启动时启动的服务不适用于 update-rc.d 命令

我已经在基于 Ubuntu 的服务器上安装了 redis 服务器,因此我可以启动/停止/重新启动 redis 服务器。 redis_server.sh 已位于 /etc/init.d 中。

现在我想让redis开机启动。我从一个网站了解到,通过使用 update_rc.d 命令,我可以在启动时添加/删除服务。

我尝试使用 update-rc.d 在启动时添加启动,但这不起作用:

root@ip-172-31-4-108:/etc/init.d# update-rc.d redis-server defaults
//System start/stop links for /etc/init.d/redis-server already exist.

另外,有一些服务我不想开机启动,所以我尝试了:

root@ip-172-31-4-108:/etc/init.d# update-rc.d reids_6379 remove
 Removing any system startup links for /etc/init.d/reids_6379 ...

但是下次重新启动时,我仍然看到该服务在启动时运行。

答案1

要删除服务,您必须使用以下-f参数:

sudo update-rc.d -f <service> remove

要配置启动时启动,请尝试:

sudo update-rc.d <service> enable

查看是否创建了以下符号链接:

/etc/rc.2d/S20<service>

或类似的东西。

答案2

在 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

答案3

不得不承认这一切在 Raspberry Pi (Debian 10) 上都不起作用。如果我想坚持使用旧的 /etc/init.d/my_script 位置,我需要执行以下操作。

# runlevel
N 5
# cd /etc/rc5.d
# ln -s ../init.d/my_script S40my_script


(probably should be done for other runlevels as well)
# ls /etc/rc5.d/ | grep my_script
S40my_script

相关内容