Initscripts/Writing rc.d scripts

From ArchWiki
Revision as of 23:13, 30 July 2011 by Andrwe (talk | contribs) (Guideline: added description for some functions)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

As part of Arch's 'BSD-style' init, rc.d scripts are used to control the starting, stopping and restarting of daemons.


  • Source Template:Filename, Template:Filename, and optionally Template:Filename.
  • Arguments and other daemon options should be placed in Template:Filename. This is done to separate configuration from logic and to keep a consistent style among daemon scripts.
  • Use functions in Template:Filename instead of duplicating their functionality.
  • Include at least start, stop and restart as arguments to the script.
  • There are some functions provided by Template:Filename:
    • stat_busy "<message>": set status busy for printed message (e.g. Starting daemon [BUSY])
    • stat_done: set status done (e.g. Starting daemon [DONE])
    • stat_fail: set status failed (e.g. Starting daemon [FAILED])
    • get_pid <program>: get PID of the program
    • ck_pidfile <PID-file> <program>: check whether PID-file is still valid for the program (e.g. ck_pidfile /var/run/ daemon || rm -f /var/run/
    • [add|rm]_daemon <program>: add/remove program to running daemons (stored in Template:Filename)


The following is an example for crond. Look in Template:Filename for greater variety.

The configuration file: Template:File

The actual script: Template:File