Cleaning up init scripts metadata

Behdad Esfahbod behdad at cs.toronto.edu
Mon Jan 19 07:18:29 UTC 2004


Hi,

I have attached a quick report on all init scripts that packages
from rawhide put in /etc/init.d or /etc/rc.d/init.d.
Every maintainer may like to check the entry for his packages.

I was trying to come up with a solution to this bug:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=97604

So I decided to go over all of them and check if they need fix or
not.  After a while I went kinda pedantic and matched the
initscript headers with the template found in
/usr/share/fedora/template.init

The template starts with these lines:

#!/bin/sh
#
# <daemonname> <summary>
#
# chkconfig:   <default runlevel(s)> <start> <stop>
# description: <description, split multiple lines with \
#              a backslash>
# processname: <daemonname>
# config:      </path/to/conffile1>
# config:      </path/to/conffile2>
# pidfile:     </path/to/pidfile>

# Source function library.
. /etc/rc.d/init.d/functions


Then I decided that /bin/sh should be replaced by /bin/bash, as
/etc/rc.d/init.d/functions ("functions" from now on) uses bash
specific features.  (I know they are the same).  Most of the
current scripts use /bin/bash, so I decided to list those that
use /bin/sh instead.

Then I named the lines in this header, so I can tell which lines
are wrong in an script.  Here is the naming:

H1 # <daemonname> <summary>
   #
H2 # chkconfig:   <default runlevel(s)> <start> <stop>
H3 # description: <description, split multiple lines with \
H4 #              a backslash>
H5 # processname: <daemonname>
H6 # config:      </path/to/conffile1>
H6 # config:      </path/to/conffile2>
H7 # pidfile:     </path/to/pidfile>

   # Source function library.
F1 . /etc/rc.d/init.d/functions


So when you read "[H1] is missing" you should know what does it
mean.

More over, I have marked those scripts that in their default
runlevels have runlevel 2 with [2].  And those that specify at
least one runlevel, but does not have runlevel 2 with [NO2].

H6 is a bit trickier than the others, as it's not quite obvious
which config files should be listed, which not.  Specially,
that's quite shaky about /etc/sysconfig/* files.  So when I
marked something as [H6SYSCONF] means that the script includes a
file in /etc/sysconfig without checking if the file exists or
not, and does not list the file in H6 section in headers.  By
[H6OPTSYSCONF] it means that the script includes some file in
/etc/sysconfig if it exists, but does not list it in H6 section.
I have not considered files like /etc/sysconfig/network that
everyone likes to include though;  tried to write something
that makes sense.

A [HORDER] means that the order of tags in header does not match
template.  For example "pidfile" has appeared before "config".
I say again, I just tried to document the changes from template.
I'm not saying who should do what.  People may like the idea and
go clean their scripts, but that's none of my business.


Then comes line marked with F1.  This is why I started the whole
boring audit session.  Some errors I have marked about F1 is:

[F1RC]: means that the script includes /etc/init.d/functions
instead of /etc/rc.d/init.d/functions.

[F1UP]: means that the "functions" inclusion line is not the
first line of code in script.  So the line needs to go up.
Sometimes what is before F1 is some condition to exit, which is
not causing any problem (is saving some cycles).  But sometimes
the code before F1 is sourcing the configuration file, that is
exactly what I was trying to catch, because my fix to bug above
breaks this cases.  Better put F1 as first line for consistency
and etc.

[F1CHK]: means that the scripts checks for "functions" in two
places and finally exits if non found.  I know this is harmless.


Cheers,
behdad
-------------- next part --------------
Legend:

   #
H1 # <daemonname> <summary>
   #
H2 # chkconfig:   <default runlevel(s)> <start> <stop>
H3 # description: <description, split multiple lines with \
H4 #              a backslash>
H5 # processname: <daemonname>
H6 # config:      </path/to/conffile1>
H6 # config:      </path/to/conffile2>
H7 # pidfile:     </path/to/pidfile>
 
   # Source function library.
F1 . /etc/rc.d/init.d/functions


[HORDER]: The order of header lines does not match the template.

[F1UP]: The F1 line is not the first line of the source.
        Should go up.  Sometimes what is before F1 is some
	condition to exit, which is not causing any problem (is
	saving some cycles).  But sometimes the code before F1 is
	sourcing the configuration file.  Better put F1 as first
	line for consistency and etc.

[F1RC]: The F1 line is missing "rc.d/" part.  Means it is:
        . /etc/init.d/functions

[F1CHK]: Checks for "functions" in two places, and exits if not
         found.

=======================
Sorted by package name:
=======================

* acpid

  - /etc/rc.d/init.d/acpid: [NO2] [H1]
    [H1] does not match template.
    [H6] Needs a config file in sysconfig/ to list modules that should
    be loaded.  Currently acpi modules are loaded in
    /etc/rc.d/rc.sysinit which is not clean.

* am-utils

  - /etc/rc.d/init.d/amd: [H1] [F1UP] [H6SYSCONF]
    [H1] does not match template.
    [F1UP] F1 line is not the first line of source.  Should go up.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.
    Script denies to run if /etc/sysconfig/amd does not exist,
    later checks *if it exists* includes that.  Better remove the
    first check and continue if there is no /etc/sysconfig/amd.

* anacron

  - /etc/rc.d/init.d/anacron: [2] [H1] [H5]
    [H1] does not match template.
    [H5] is missing.

* apmd

  - /etc/rc.d/init.d/apmd: [2] [H1] [H6] [F1UP]
    [H1] is missing.
    [F1UP] F1 line is not the first line of source.  Should go up.
    [H6] In header there is a line "# clock: ...", that should be
    replaced by "# config: ...", means, two config files set.

* arpwatch

  - /etc/rc.d/init.d/arpwatch: [H1] [H6OPTSYSCONF] 
    [H1] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* at

  - /etc/rc.d/init.d/atd: [NO2] [H1] [F1RC]
    [H1] does not match template
    [F1RC]: The F1 line is missing "rc.d/" part.

* autofs

  - /etc/rc.d/init.d/autofs: [NO2] [HORDER] [H1] [H5]
    [H1] does not match template.  Extra lines should move after
    the header.
    [H5] processname does not need the path.
    [HORDER] The order of header lines does not match the template.
    In code:  initdir=/etc/init.d -> initdir=/etc/rc.d/init.d
    Also sets PATH, which is not needed.  "functions" takes care.

* bind

  - /etc/rc.d/init.d/named: [H4] [H5] [H6OPTSYSCONF]
    [H4] should be indented.
    [H5] processname is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* bluez-pan
  The script should be moved from /etc/init.d/pand to
  /etc/rc.d/init.d/pand.

  - /etc/init.d/pand: [NO2] [H1] [H5] [H6SYSCONF]
    [H1] should be renamed to "pand".  There is another service
    called "bluetooth".  Also the description needs to be
    changed.
    [H5] processname is missing.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.

* bluez-utils

  - /etc/rc.d/init.d/bluetooth: [2] [H5] [H6]
    [H5] processname is missing.
    [H6] UART_CONF can be added as config header.
    [H6SYSCONF] /etc/sysconfig/* is missing in header?  It's
    currently commented out.
    (What's the difference with 'pand' above?)

* bootparamd

  - /etc/rc.d/init.d/bootparamd: [H1]
    [H1] is missing.

* Canna

  - /etc/rc.d/init.d/canna: [2] [H5] [HORDER] [F1RC]
    [H5] processname is missing.
    [HORDER] The order of header lines does not match the template.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Also, sets PATH, which is not needed. "functions" takes care.

* cups

  - /etc/rc.d/init.d/cups: [2] [H] [H1] [H5] [H6] [F1CHK]
    [H] Header does not match template.
    [H1] is missing.
    [H5] is missing.
    [H6] Some /etc/cups/ files can be added as config files.
    [F1CHK] Checks for "functions" in two places.

* cyrus-imapd

  - /etc/rc.d/init.d/cyrus: [H1] [H5]
    [H1] is missing.
    [H5] is missing.
    This script does not call success or failure.  Better use
    'daemon' function.

* cyrus-sasl

  - /etc/rc.d/init.d/saslauthd: [H6OPTSYSCONF] [F1RC]
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1RC]: The F1 line is missing "rc.d/" part.

* dbus

  - /etc/rc.d/init.d/messagebus: [NO2] [H3] [H4] [F1UP] [H6]
    [H3], [H4] lines longer than 80.
    [F1UP] F1 line is not the first line of source.  Should go up.
    [H6] Some /etc/dbus-1/ files added as config files?

* dhcp

  - /etc/rc.d/init.d/dhcpd: [H5] [H6] [H6SYSCONF]
    [H5] is missing.
    [H6] /etc/dhcpd.conf is missing.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.

  - /etc/rc.d/init.d/dhcrelay: [H5] [H6OPTSYSCONF]
    [H5] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* distcache

  - /etc/init.d/dc_client: [H1] [H6OPTSYSCONF]
    [H1] does not match the template.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

  - /etc/init.d/dc_server: [H1] [H6OPTSYSCONF]
    [H1] does not match the template.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* dovecot

  - /etc/rc.d/init.d/dovecot: [H1] [F1RC]
    [H1] does not match the template.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Headers should end with an empty line.
    I cannot find any config files.  None of them?

* exim

  - /etc/rc.d/init.d/exim: [2] [F1RC] [H6OPTSYSCONF]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* firstboot

  - /etc/rc.d/init.d/firstboot: [H3] [H4] [H6OPTSYSCONF]
    [H3], [H4] lines longer than 80.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    It just runs on runlevels 3 and 5.  Why not 345 or 2345?
    I know it doesn't really matter.

* freeradius

  - /etc/rc.d/init.d/radiusd: [H] [H1] [H5] [H6]
    [H1] is missing.
    [H5] is missing.
    [H6] /etc/raddb/radiusd.conf is missing.
    [H] Copyright notice in header can be removed?

* FreeWnn

  - /etc/rc.d/init.d/FreeWnn: [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* gkrellm-daemon

  - /etc/init.d/gkrellmd: [H1]
    [H1] is missing.

* gpm

  - /etc/rc.d/init.d/gpm: [2] [H1] [HORDER] [H6] [F1RC]
    [H1] is missing.
    [HORDER] The order of header lines does not match the template.
    [H6] /etc/sysconfig/gpm can be added to configs too.
    [F1RC]: The F1 line is missing "rc.d/" part.

* hpoj

  - /etc/rc.d/init.d/hpoj: [2] [H1]
     [H1] is missing.
     This script does not use 'functions' at all.
     It just calls a big noisy perl script that takes care.

* httpd

  - /etc/rc.d/init.d/httpd: [H1] [HORDER] [H6OPTSYSCONF]
    [H1] does not match the template.
    [HORDER] The order of header lines does not match the template.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* hwcrypto

  - /etc/rc.d/init.d/aep1000: [H1] [H5] [F1CHK]
    [H1] is missing.
    [H5] is missing.
    [F1CHK] Checks for "functions" in two places.
    Also sets PATH, which is not needed.  "functions" takes care.

  - /etc/rc.d/init.d/bcm5820: [H1] [H3] [F1CHK]
    [H1] is missing.
    [H3] is longer than 80 chars, should break.
    [F1CHK] Checks for "functions" in two places.
    Also sets PATH, which is not needed.  "functions" takes care.

* iiimf-server

  - /etc/init.d/IIim: [2] [H5] [F1RC]
    [H5] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Better look for "OPTIONS" in /etc/sysconfig/IIim.

* initscripts

  - /etc/rc.d/init.d/halt: [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.
    By the way, why does it set NOLOCALE=1?  Is it that we're
    going to umount filesystems?

  - /etc/rc.d/init.d/netfs: [NO2] [F1RC] [F1UP]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/network: [2] [F1RC] [H6SYSCONF]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.

  - /etc/rc.d/init.d/random: [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

  - /etc/rc.d/init.d/rawdevices: [NO2] [F1RC] [F1UP]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/single: [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* inn

  - /etc/rc.d/init.d/innd: [F1RC] 
    [F1RC]: The F1 line is missing "rc.d/" part.

* ipchains

  - /etc/rc.d/init.d/ipchains: [2] [H1] [F1RC] [F1UP]
    [H1] does not match the template.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.
    There's some code to load lang.sh that is done these days by
    "functions".

* iptables

  - /etc/rc.d/init.d/iptables: [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* iptables-ipv6

  - /etc/rc.d/init.d/ip6tables:  [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* irda-utils

  - /etc/rc.d/init.d/irda: [H4] [H5] [H6SYSCONF]
    [H4] should be indented.
    [H5] is missing.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.

* iscsi

  - /etc/rc.d/init.d/iscsi: [H1] [H3] [H5] [H7] [F1RC] [F1CHK]
    [H1] is missing.  
    [H3] better description needed.
    [H5] is missing.
    [H7] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1CHK] Checks for "functions".  No need for check.  Like
    template.
    This script does not use 'daemon', and does not use 'success'
    and 'failure'.  No fancy sign of success.  Needs fix.
    This script uses /bin/sh instead of /bin/bash.  Features like
    $"message" are introduced in bash IIRC.  Better replace with
    bash.  (Yes, I know that sh is a symlink to bash)

* isdn4k-utils

  - /etc/rc.d/init.d/isdn: [2] [H1] [H5] [H6SYSCONF] [F1CHK]
    [H1] is missing.
    [H5] is missing.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.
    [F1CHK] Checks for "functions" in two places.
    Also sets PATH, which is not needed.  "functions" takes care.


* isicom

  - /etc/rc.d/init.d/isicom: [H4]
    [H4] should be indented.

* kdenetwork

  - /etc/rc.d/init.d/lisa: [H1]
    [H1] does not match the template.
    Also, after sourcing "functions" in the right way, then does
    a double check!  The second block should be removed
    completely.

* kernel-pcmcia-cs

  - /etc/rc.d/init.d/pcmcia: [2] [H1] [HORDER] [H6OPTSYSCONF]
    [H1] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [HORDER] the order of header tags does not match the
    template.  Moreover I guess a single line of "# Tags" is
    needed instead of "# Tags for Red Hat ...".
    This script does not use "functions" at all.  No neat output
    then.

* kernel-utils

  - /etc/rc.d/init.d/cpuspeed: [2] [H1] [H2] [H5] [H6OPTSYSCONF]
    [H1] is missing.
    [H5] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [H2] This is the only service I found that installs itself by
    default "on" for runlevel 1!

  - /etc/rc.d/init.d/irqbalance: [NO2] [H6OPTSYSCONF] [F1RC]
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1RC]: The F1 line is missing "rc.d/" part.
    There is also an extra old comment line "#This is an ..." at
    the very beginning which is not needed anymore (the code has
    been already removed).

  - /etc/rc.d/init.d/microcode_ctl: [H1] [F1UP]
    [H1] is missing.
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/smartd: [2] [H1]
    [H1] does not match template and comes after "chkconfig".
    NOTE: Depends on /etc/redhat-release

* krb5-libs

  - /etc/rc.d/init.d/kdcrotate: [NO2] [F1UP]
    [F1UP] F1 line is not the first line of source.  Should go up.
    Also no need to set PATH.  "functions" takes care.
    Does not call 'success' or 'failure'.

* krb5-server

  - /etc/rc.d/init.d/kadmin: [F1RC] [F1UP]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/kprop: [H1] [F1RC] [F1UP]
    [H1] ".init" should be removed from daemonname.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/krb524: [F1UP]
    [F1UP] F1 line is not the first line of source.  Should go up.

  - /etc/rc.d/init.d/krb5kdc: [F1UP]
    [F1UP] F1 line is not the first line of source.  Should go up.

* kudzu

  - /etc/rc.d/init.d/kudzu: [NO2] [F1RC] [F1UP] [H6SYSCONF]
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.
    Moreover, the whole block about loading current locale can
    be removed.  "functions" takes care of that.

* mailman

  - /etc/rc.d/init.d/mailman:
    Calls /bin/sh instead of /bin/bash.  No problem.
    Doesn't use "functions".  Calls a python script.  No
    "success" and "failure" calls.

* mars-nwe

  - /etc/rc.d/init.d/mars-nwe: [H1]
    [H1] is missing.
    Uses /bin/sh instead of /bin/bash.  Should be changed.  (I
    know they are the same...)

* mdadm

  - /etc/rc.d/init.d/mdmonitor: [2] [H1] [H5] [H7] [F1UP]
    [H1] should fit in one line.
    [H5] is missing.
    [H7] is missing.
    [F1UP] F1 line is not the first line of source.  Should go up.
    Also no need to set "PATH". "functions" takes care.

* mysql-server

  - /etc/rc.d/init.d/mysqld: [H1]
    [H1] should fit in one line.

* netatalk

  - /etc/rc.d/init.d/atalk: [H1] [H3] [H4] [H6] [F1RC]
    [H1] is missing.
    [H3], [H4] lines longer than 80.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H6] config files should be defined as separate 'config' tags.
    Perhaps replace it with /etc/atalk/netatalk.conf instead.

* netdump

  - /etc/rc.d/init.d/netdump: [H1] [F1UP]
    [H1] should fit in one line.
    [F1UP] F1 line is not the first line of source.  Should go up.
    Also no need to set "PATH". "functions" takes care.

* netdump-server

  - /etc/rc.d/init.d/netdump-server: [H1]
    [H1] should fit in one line.

* net-snmp

  - /etc/rc.d/init.d/snmpd: [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

  - /etc/rc.d/init.d/snmptrapd: [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* nfs-utils

  - /etc/rc.d/init.d/nfs: [NO2] [H1] [H5] [H6OPTSYSCONF]
    [H1] should fit in one line.
    [H5] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    Perhaps more config files? /etc/exports, ...?

  - /etc/rc.d/init.d/nfslock: [NO2] [H1] [H5] [H6OPTSYSCONF]
    [H1] should fit in one line.
    [H5] is missing.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    Perhaps more config files?

* nscd

  - /etc/rc.d/init.d/nscd: [F1RC] [F1UP] [H7]
    [H7] is missing
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.

* ntp

  - /etc/rc.d/init.d/ntpd: [H1] [F1RC] [H5] [H6OPTSYSCONF] [H6]
    [H1] should fit in one line.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H5] is missing.
    [H6] is missing, /etc/ntp.conf?
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* nut-client

  - /etc/rc.d/init.d/ups: [H1] [H3] [H4] [H6] [H6OPTSYSCONF]
    [H1] is missing.
    [H3] long longer than 80.
    [H4] line should be indented.
    [H6] directory is not allowed here.  Each config file should
    appear in a single config tag.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    This service does not use "functions" and so no "success" and
    "failure".

* openldap-servers

  - /etc/rc.d/init.d/ldap: [H1] [F1RC] [H6OPTSYSCONF]
    [H1] should fit in one line.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* openssh-server

  - /etc/rc.d/init.d/sshd: [2] [H1] [H6OPTSYSCONF]
    [H1] does not match template.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    Uses "initlog sshd && success || failure".  Can be replaced
    by "daemon".

* pidentd

  - /etc/rc.d/init.d/identd: [HORDER] [F1RC] [H6OPTSYSCONF]
    [HORDER] the order of header tags does not match template
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1RC]: The F1 line is missing "rc.d/" part.

* portmap

  - /etc/rc.d/init.d/portmap: [NO2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.
    Moreover, the whole block about loading current locale can
    be removed.  "functions" takes care of that.

* postfix

  - /etc/rc.d/init.d/postfix: [2] [HORDER]
    [HORDER] the order of header tags does not match template
    Can use daemon but does not.

* postgresql-server

  - /etc/rc.d/init.d/postgresql: [H1] [H6OPTSYSCONF]
    [H1] should fit in one line.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    The change log is a bit annoying there.

* privoxy

  - /etc/rc.d/init.d/privoxy: [2] [H1]
    [H1] does not match template.
    Uses /bin/sh.  Better replaced with /bin/bash
    The change log is a bit annoying there.

* psacct

  - /etc/rc.d/init.d/psacct: [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* quagga

  - /etc/rc.d/init.d/bgpd: [H1]
    [H1] is missing.

  - /etc/rc.d/init.d/ospf6d: [H1]
    [H1] is missing.

  - /etc/rc.d/init.d/ospfd: [H1]
    [H1] is missing.

  - /etc/rc.d/init.d/ripd: [H1]
    [H1] is missing.

  - /etc/rc.d/init.d/ripngd: [H1]
    [H1] is missing.

  - /etc/rc.d/init.d/zebra: [H1]
    [H1] is missing.

* radvd

  - /etc/rc.d/init.d/radvd: [H1] [HORDER]
    [H1] is missing.
    [HORDER] The order of header lines does not match the template.

* rarpd

  - /etc/rc.d/init.d/rarpd: [H1] [F1RC]
    [H1] does not match template.
    [F1RC]: The F1 line is missing "rc.d/" part.

* routed

  - /etc/rc.d/init.d/routed: [H1] [F1RC]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Uses /bin/sh instead of /bin/bash.

* rusers-server

  - /etc/rc.d/init.d/rstatd: [H1] [F1RC]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Uses /bin/sh instead of /bin/bash.

  - /etc/rc.d/init.d/rusersd: [H1] [F1RC]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.

* rwall-server

  - /etc/rc.d/init.d/rwalld: [H1] [F1RC]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    Uses /bin/sh instead of /bin/bash.

* rwho

  - /etc/rc.d/init.d/rwhod: [H1] [F1RC] [F1UP]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.
    Uses /bin/sh instead of /bin/bash.

* samba-common

  - /etc/rc.d/init.d/winbind: [H1] [H5] [F1CHK] [H6OPTSYSCONF] [HORDER]
    [H1] is missing.
    [H5] is missing.
    [F1CHK] Checks for "functions" in two places.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [HORDER] The order of header lines does not match the template.
    Also, after "description" there should be a line with only
    one "#".

* samba

  - /etc/rc.d/init.d/smb: [H1] [H5] [F1CHK] [H6OPTSYSCONF] [HORDER]
    [H1] is missing.
    [H5] is missing. (two lines)
    [F1CHK] Checks for "functions" in two places.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [HORDER] The order of header lines does not match the template.

* sendmail

  - /etc/rc.d/init.d/sendmail: [2] [H1] [H6OPTSYSCONF]
    [H1] should fit in one line.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* spamassassin

  - /etc/rc.d/init.d/spamassassin: [2] [H5] [H6] [H6OPTSYSCONF]
    [H5] is missing.
    [H6] is missing. (/etc/mail/spamassassin/ files?)
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.

* squid

  - /etc/rc.d/init.d/squid: [H1] [H5] [HORDER] [F1UP] [H6OPTSYSCONF] 
    [H1] should fit in one line.
    [H5] is missing.
    [HORDER] The order of header lines does not match the template.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1UP] F1 line is not the first line of source.  Should go up.
    Also no need to set PATH.  "functions" takes care.

* sysklogd

  - /etc/rc.d/init.d/syslog: [2] [H4] [H5] [H6] [H6OPTSYSCONF] [F1RC]
    [H4] line should be indented.
    [H5] is missing.
    [H6] is missing. /etc/syslog.conf
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1RC]: The F1 line is missing "rc.d/" part.

* up2date

  - /etc/rc.d/init.d/rhnsd: [NO2] [H6OPTSYSCONF] [F1UP]
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    [F1UP] F1 line is not the first line of source.  Should go up.

* vixie-cron

  - /etc/rc.d/init.d/crond: [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.

* vnc-server

  - /etc/rc.d/init.d/vncserver: [H1] [F1RC] [H6OPTSYSCONF]
    [H1] is missing.
    [F1RC]: The F1 line is missing "rc.d/" part.
    [H6OPTSYSCONF] Optional /etc/sysconfig/* is missing in header.
    In this case /etc/sysconfig/vncservers is the main config
    file of the service.

* vsftpd

  - /etc/rc.d/init.d/vsftpd: [H1]
    [H1] should fit in one line.
    This does call 'success', but does not call 'failure' if it
    goes wrong.  EasyFix.

* XFree86-xfs

  - /etc/rc.d/init.d/xfs: [2] [F1RC]
    [F1RC]: The F1 line is missing "rc.d/" part.
    Also the "LANG=C" line can be removed.  "functions" already
    set LANG.

* xinetd

  - /etc/rc.d/init.d/xinetd: [NO2] [H5] [H6]
    [H5] processname does not need path.
    [H6] instead of /etc/sysconfig/network, I think it would be
    /etc/sysconfig/xinetd.

* ypbind

  - /etc/rc.d/init.d/ypbind: [F1RC] [F1UP]
    [F1RC]: The F1 line is missing "rc.d/" part.
    [F1UP] F1 line is not the first line of source.  Should go up.


* ypserv

  - /etc/rc.d/init.d/yppasswdd: [F1CHK] [H6SYSCONF]
    [F1CHK] checks for "functions".  No need to check.
    [H6SYSCONF] Mandatory /etc/sysconfig/* is missing in header.

  - /etc/rc.d/init.d/ypserv: [F1CHK]
    [F1CHK] checks for "functions".  No need to check.

  - /etc/rc.d/init.d/ypxfrd: [F1CHK]
    [F1CHK] checks for "functions".  No need to check.

* yum

  - /etc/init.d/yum: 


More information about the fedora-devel-list mailing list