Since the init.d scripts must live in a single directory, they must come from a single namespace. Three means of assigning names from this namespace are available:
Assigned namespace. This namespace consists of names which only use the character set [a-z0-9]. This space is desirable for scripts which system administrators may often wish to run manually: e.g., "/etc/init.d/named restart" In order to avoid conflicts these names must be reserved through the LANA (Linux Assigned Names/Numbers Authority).
Commonly used names shall be reserved in advance; developers for projects should be encouraged reserve names from LANA, so that each distribution can use the same name, and to avoid conflicts with other projects.
Hierarchical namespace. This namespace consists of scripts names which look like this: [hier1]-[hier2]-...-[name], where name is again taken the character set [a-z0-9], and where there may be one or more [hier-n] components. [hier1] may either be a [a-z0-9] name assigned by the LANA, or it may be owners' DNS name in lower case, with at least one '.'. I.e., "debian.org", "staroffice.sun.com", etc.
Reserved namespace. This namespace consists of script names which begin with the character '_', and is reserved for distribution use only. This namespace should be used for core packages only, and in general use of this namespace is highly discouraged.
In general, if a package or some system function is likely to be used on multiple systems, the package developers or the distribution SHOULD get a registered name through LANA, and distributions should strive to use the same name whenever possible. For applications which may not be "core" or may not be commonly installed, the hierarchical namespace may be more appropriate. An advantage to the hierarchical namespace is that there is no need to consult with the LANA before obtaining an assigned name.
Obviously, short names are highly desirable, since many system administrators like to use them to manually start and stop services. Given this, they should be standardized on a per-package basis. This is the rationale behind having a LANA organization to assign these names. The LANA may be called upon to handle other namespace issues, such as package/prerequisites naming (which I'm sure will be a hot political topic, but essential to make prerequisites to work correctly).
This specification shall pre-define the following script names as being reserved to the LANA. They reflect names which are commonly in use today by distributions to start up various sytem programs/daemons. The behaviour of these scripts are not specified here, and not all distributions may use all of these script names.
autofs
apmd
atd
crond
dhclient
dhcpcd
gpm
exim
halt
identd
inet
httpd
kudzu
klogd
lpd
mcserv
named
nfs
nfslock
pcmcia
portmap
postfix
random
routed
rstatd
rusersd
rwhod
sendmail
samba
smb
snmpd
sshd
syslog
xfs
xntpd
ypbind