Generic init.d script framework to reduce the redundant code in /etc/init.d/. The goal is to create an init.d script that is Debian and LSB compliant. When the Debian policy conflict with the LSB, the Debian policy take preference. See \$2 \(la\$1\(ra\$3 for information about init.d scripts in the LSB.

This is a simple example on how init-d-script can be used to start and stop a daemon with PID file support:

  • #!/lib/init/init-d-script
    # Provides:          atd
    # Required-Start:    $syslog $time $remote_fs
    # Required-Stop:     $syslog $time $remote_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: run at jobs
    # Description:       Debian init script to start the daemon
    #                    running at jobs.

In addition to the DAEMON setting, one can specify DESC, NAME, PIDFILE (none means no PID file), or implement override functions do_force_reload_override, do_reload_override, do_restart_override, do_start_override, do_start_cmd_override, do_start_prepare, do_start_cleanup do_status_override, do_stop_override, do_stop_prepare, do_stop_cleanup and do_stop_cmd_override.

If the daemon support reloading, implement the do_reload function to make the init.d script recognize the reload operation as well as use it for the force-reload operation.

If DAEMON is 'none', the check to see if the daemon is installed is disabled, and replacement functions do_start_cmd_override, do_stop_cmd_override and do_status_override functions must be implemented.

Services supporting reload should define the do_reload function. If the service handle reload using a SIGUSR1 signal, the following alias can be used instead of implementing ones own do_reload function:

alias do_reload=do_reload_sigusr1



Bourne shell interpreter with implementation of init.d actions /etc/init.d/ Location of init.d scripts.


Not yet documented


This manpage was written by Petter Reinholdtsen <[email protected]>.

RELATED TO init-d-script…

inittab(8), service(8), update-rc.d(8).