按照这个问题,我想/etc/init.d
在启动时启动一个脚本。我有以下脚本注释:
# Startup script for Wowza Media Server
#
# chkconfig: - 80 20
# description: Wowza Media Server is a media server
#
#### BEGIN INIT INFO
# Provides: WowzaMediaServer
# Required-Start: $syslog $time $local_fs $remote_fs
# Required-Stop: $syslog $time $local_fs $remote_fs
# Default-Start: 3 4 5
# Default-Stop: S 0 1 2 6
# Short-Description: Wowza Media Server 3 Init Script
# Description: Wowza Media Server 3 Init Script
### END INIT INFO
据我所知,对于 Debian 和 Ubuntu 系统,chkconfig
我需要使用 ,而不是使用update-rc.d
。我过去曾这样做过,但似乎update-rc.d
只是将脚本链接到所有运行级别。事实真的如此吗?
我需要这个脚本仅在网络启动后运行;我正在运行一个需要curl
URL 的脚本来确定主机 (EC2) 的公共 DNS 名称。如何添加此脚本update-rc.d
以按照我想要的方式自动启动?
答案1
您应该考虑到 Debian 和 Ubuntu 仅使用运行级别 0、1、2、6,默认的图形多用户运行级别是 2。
Ubuntu 有一个额外的复杂性:暴发户管理基于事件的服务启动过程,但init.d
仍支持旧脚本。
我认为以下命令应该有效
update-rc.d script-base-name defaults
因为,正如您在 (dry run) 选项中看到的-n
,它创建的链接的名称以S20
运行级别 2、3、4、5 开头,唯一有意义的是 2,并且我认为当脚本运行时网络已经启动被处决。
如果您想确定,可以添加更大的序列号,如下所示
update-rc.d script-base-name defaults 99
以便使用前缀创建链接S99
,确保该服务是最后运行的。
答案2
我想您正在寻找:
update-rc.d wowza start 99 2 3 4 5 .