As per this question, I'd like to start a /etc/init.d script on boot. I have the following script comments:

# Startup script for Wowza Media Server
# chkconfig: - 80 20
# description: Wowza Media Server is a media server
# 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

I understand that for Debian and Ubuntu systems, rather than using chkconfig, I need to use update-rc.d. I've done this in the past, but it seems that update-rc.d just links the script to all runlevels. Is this really the case?

I need this script to only run when starting after networking is up; I'm running a script that needs to curl a URL in order to determine the public DNS name of the host (EC2). How can I add this script to auto-start using update-rc.d in the way I'm looking to do it?

  • there's also nice sysv-rc-conf tool available for apt-get. – Antti Rytsölä Nov 11 '11 at 16:16
  • In what way are you dissatisfied with what update-rc.d does? Yes, it links the script to all (normal) runlevels, so what? – Gilles 'SO- stop being evil' Nov 11 '11 at 23:51
  • If you really want it to run "after networking is up" you could just add it to /etc/network/if-up.d/ – Sorpigal Nov 15 '11 at 13:02
  • @Gilles, sorry, I guess I don't really understand what runlevels are. – Naftuli Kay Nov 15 '11 at 20:43

You should take into account that Debian and Ubuntu only use runlevels 0, 1, 2, 6, and the default graphical multiuser runlevel is 2.

Ubuntu has the added complication of upstart managing the event based services startup process, but old init.d script are still supported.

I think that the following command should work

update-rc.d script-base-name defaults

because, as you can see with the -n (dry run) option, it creates links whose names begin with S20 in runlevels 2, 3, 4, 5, the only meaningful being the 2, and I suppose the network is already started when the script will be executed.

If you want to be sure, you can add a greater sequence number, as in

update-rc.d script-base-name defaults 99

so that the links will be created with the S99 prefix, assuring the service is the last to be run.

  • 1
    Runlevels 3, 4 and 5 exist, and you can customize them. It's just that by default, they are set up identically to runlevel 2. – Gilles 'SO- stop being evil' Nov 11 '11 at 23:51

I think you're looking for:

update-rc.d wowza start 99 2 3 4 5 .

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.