InitScriptStatusActions
4751
Comment: add dpkg -S bit
|
6354
reviewed rest of scripts
|
Deletions are marked like this. | Additions are marked like this. |
Line 75: | Line 75: |
=== /etc/init.d/... === | === /etc/init.d/... init scripts with associated daemon(s) === |
Line 77: | Line 77: |
1. bip - (not in main, but a pet peeve of mine when it goes down, would like a status action) 1. bluetooth 1. bootlogd 1. brltty 1. dbus 1. dhcdbd 1. gdm 1. hal 1. kdm 1. mtab.sh 1. mysql 1. mysql-ndb 1. mysql-ndb-mgm 1. openvpn 1. powernowd 1. pulseaudio 1. rsync 1. squid 1. system-tools-backends 1. usplash 1. winbind - patches pending (wiki:Bug:247087) === /etc/init.d/... Non-daemon init scripts === ==== No daemon, but detectable status ==== The following init scripts do not have an associated daemon, however, they do perform actions on the system which could be algorithmically checked. I'm noting some suggested items that could be checked in a 'status' action. 1. apport - status should look at /proc/sys/kernel/core_pattern 1. binfmt-support - status should check update-binfmts --display, perhaps 1. checkfs.sh - status could show the time/date/results of the last check 1. checkroot.sh - similar to checkfs.sh, perhaps? 1. mountoverflowtmp - status could check the tmp mountpoint 1. networking - status could check network connectivity 1. pcmciautils - status could check lsmod for needed modules 1. policykit - status could check directory existence and permissions 1. rmnologin - status could check /var/lib/initscripts/nologin 1. screen-cleanup - status could check /var/run/screen 1. single - status could check if in single user mode or not 1. skeleton - the skeleton init script itself should be enhanced to have a status action! 1. udev - Scott says that this script should not have a status action; there is an associated daemon, so it certainly '''could''' 1. udev-finish - see udev 1. urandom - status could check /dev/urandom ==== No daemon ==== The following init scripts do not have an associated deamon. On initial review of the code, a 'status' action for these scripts does not necessarily make sense. If you have an idea of a sensible status action, please note the suggestion and move the item to the list above (detectable status). |
|
Line 79: | Line 126: |
1. apport 1. binfmt-support 1. bluetooth 1. bootlogd |
|
Line 84: | Line 127: |
1. brltty 1. checkfs.sh 1. checkroot.sh |
|
Line 89: | Line 129: |
1. dbus 1. dhcdbd |
|
Line 92: | Line 130: |
1. gdm | |
Line 94: | Line 131: |
1. hal | |
Line 100: | Line 136: |
1. kdm | |
Line 111: | Line 146: |
1. mountoverflowtmp 1. mtab.sh 1. mysql 1. mysql-ndb 1. mysql-ndb-mgm 1. networking 1. openvpn 1. pcmciautils 1. policykit 1. powernowd |
|
Line 124: | Line 149: |
1. pulseaudio | |
Line 132: | Line 156: |
1. rmnologin 1. rsync 1. screen-cleanup |
|
Line 136: | Line 157: |
1. single 1. skeleton |
|
Line 141: | Line 160: |
1. system-tools-backends 1. udev 1. udev-finish |
|
Line 147: | Line 163: |
1. urandom 1. usplash |
|
Line 150: | Line 164: |
1. winbind |
Overview
The LSB suggests that init scripts provide a status action:
status_of_proc() library function in lsb-base
DustinKirkland has worked with Debian to provide a status_of_proc() method in /lib/lsb/init-functions, which is provided by the lsb-base package. This function is fully integrated in Debian's lsb-3.2-14:
various init script callers
DustinKirkland has provided patches to the key service init scripts that are installable from the Ubuntu Server CD:
at: wiki:247091
bind9: wiki:247084
cron: wiki:201504
dovecot: wiki:247096
openssh: wiki:247103
samba: wiki:247087
syslogkd: wiki:247106
OnnoBenschop has provided a script to detect, and compiled a list of init scripts that are lacking status action here:
Countless other init scripts could/should be patched to provide this functionality.
Patch Checklist
When you encounter an init script that lacks a status action:
- Determine the source package
- dpkg -S /etc/init.d/FOO
- Open a Bug in Launchpad against the package
- Grab the source
- apt-get source FOO
- sudo apt-get build-dep FOO
- Locate the init script in the source tree, often:
- debian/*.init
- debian/rc
- Patch the source to
- have the init script call status_of_proc()
- have the init script add "status" to the usage statement
add a dependency in debian/control for lsb-base >= 3.2-12ubuntu3
- if you're sending to Ubuntu
- add the changelog entry referencing your Launchpad bug
- Test your patched init script
- sh debian/FOO.init status
- echo $?
- sudo sh debian/FOO.init stop
- sh debian/FOO.init status
- echo $?
- sudo sh debian/FOO.init start
- sh debian/FOO.init status
- echo $?
- Build a source package
- debuild -S
- Generate a patch
- debdiff
- Compare your work to some of the other patches that did similar things.
See the patch for atd:
Or, perhaps have a look at the patch for openssh-server, which passes a pidfile to status_of_proc():
However, some are more complicated than others, such as samba:
- Add your patch to the Launchpad bug you filed
Init Scripts that Need a Status Action
The following is a crude list of init scripts in Intrepid that are lacking a "status" action. I say "crude" in that this list was generated on 2008-07-21 by installing the Intrepid Ubuntu (server, ubuntu-desktop, kubuntu-desktop, xubuntu-desktop), and grepping through /etc/init.d for scripts that lacked the string "status)". Please help improve this list by adding/removing init scripts to/from this list, and linking to a bug number. Please leave an informative note in this wiki page's changelog.
You can run dpkg -S /etc/init.d/... to determine the source package of any of the following scripts.
/etc/init.d/... init scripts with associated daemon(s)
- acpid
- bip - (not in main, but a pet peeve of mine when it goes down, would like a status action)
- bluetooth
- bootlogd
- brltty
- dbus
- dhcdbd
- gdm
- hal
- kdm
- mtab.sh
- mysql
- mysql-ndb
- mysql-ndb-mgm
- openvpn
- powernowd
- pulseaudio
- rsync
- squid
- system-tools-backends
- usplash
winbind - patches pending (wiki:247087)
/etc/init.d/... Non-daemon init scripts
No daemon, but detectable status
The following init scripts do not have an associated daemon, however, they do perform actions on the system which could be algorithmically checked. I'm noting some suggested items that could be checked in a 'status' action.
- apport - status should look at /proc/sys/kernel/core_pattern
- binfmt-support - status should check update-binfmts --display, perhaps
- checkfs.sh - status could show the time/date/results of the last check
- checkroot.sh - similar to checkfs.sh, perhaps?
- mountoverflowtmp - status could check the tmp mountpoint
- networking - status could check network connectivity
- pcmciautils - status could check lsmod for needed modules
- policykit - status could check directory existence and permissions
- rmnologin - status could check /var/lib/initscripts/nologin
- screen-cleanup - status could check /var/run/screen
- single - status could check if in single user mode or not
- skeleton - the skeleton init script itself should be enhanced to have a status action!
udev - Scott says that this script should not have a status action; there is an associated daemon, so it certainly could
- udev-finish - see udev
- urandom - status could check /dev/urandom
No daemon
The following init scripts do not have an associated deamon. On initial review of the code, a 'status' action for these scripts does not necessarily make sense. If you have an idea of a sensible status action, please note the suggestion and move the item to the list above (detectable status).
- acpi-support
- alsa-utils
- bootmisc.sh
- console-screen.sh
- console-setup
- dns-clean
- glibc.sh
- halt
- hostname.sh
- hotkey-setup
- hwclockfirst.sh
- hwclock.sh
- keyboard-setup
- killprocs
- loopback
- module-init-tools
- mountall-bootclean.sh
- mountall.sh
- mountdevsubfs.sh
- mountkernfs.sh
- mountnfs-bootclean.sh
- mountnfs.sh
- powernowd.early
- pppd-dns
- procps
- rc
- rc.local
- rcS
- readahead
- readahead-desktop
- reboot
- resolvconf
- sendsigs
- stop-bootlogd
- stop-bootlogd-single
- stop-readahead
- umountfs
- umountnfs.sh
- umountroot
- vbesave
- wpa-ifupdown
- xserver-xorg-input-wacom
InitScriptStatusActions (last edited 2009-11-29 13:27:58 by 77-21-62-108-dynip)