Tearing down the system
Scott James Remnant
scott at ubuntu.com
Fri Jul 21 00:24:40 BST 2006
For edgy we're going to be attacking the init scripts that perform
something on shutdown (rc0.d) or reboot (rc6.d) that is completely
un-necessary.
The specification for that is:
http://wiki.ubuntu.com/Teardown
Broadly speaking, if you have a package in Ubuntu with an init script,
you should question whether it really needs to run in these two run
levels.
If your script does nothing more for the "stop" argument than:
* Send a TERM signal to the process.
* Wait using sleep (and not any further checking, such as against a
queue or similar)
* Send a KILL signal to the process.
Then it should NOT have a symlink in rc0 or rc6.
Currently most scripts only do the first thing, and some don't even do
that and just exit if "stop" is given as the argument. This is a waste
of time, as this is performed by the sendsigs script anyway.
Also if your script does something that's reasonably pointless given the
machine is about to go away, such as clean up files in /var/run (a
tmpfs), /var/lock (also a tmpfs), etc. it should not have a symlink in
these run levels either.
Changing your package is easy, you're probably calling the following in
your debian/rules:
dh_installinit
or
dh_installinit defaults
Change that to
dh_installinit multiuser
Maybe you're calling update-rc.d in your postinst instead, change:
update-rc.d foo defaults
to
update-rc.d foo multiuser
If you're using more complicated arguments, make sure you drop "0" and
"6" from the list of runlevels for "stop", e.g.:
update-rc.d foo start 35 2 3 4 5 . stop 65 0 1 6 .
becomes
update-rc.d foo start 35 2 3 4 5 . stop 65 1 .
Be sure to remove up the old symlinks from /etc/rc0.d and /etc/rc6.d in
your postinst if your package is upgraded.
Scott
--
Scott James Remnant
scott at ubuntu.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/ubuntu-devel-announce/attachments/20060721/1cb9b37a/attachment.pgp
More information about the ubuntu-devel-announce
mailing list