start-stop-daemon(8)

NAAM
start-stop-daemon - start en stopt systeemachtergronddiensten

OVERZICHT
start-stop-daemon [optie...] commando

BESCHRIJVING
start-stop-daemon wordt gebruikt om het creëren en afsluiten van processen op systeemniveau te regelen. Door een van de overeenkomstige opties te gebruiken kan start-stop-daemon geconfigureerd worden om bestaande exemplaren te vinden van actieve processen.

Note: Unless --pid or --pidfile are specified, start-stop-daemon behaves similar to killall(1). start-stop-daemon will scan the process table looking for any processes which match the process name, parent pid, uid, and/or gid (if specified). Any matching process will prevent --start from starting the daemon. All matching processes will be sent the TERM signal (or the one specified via --signal or --retry) if --stop is specified. For daemons which have long-lived children which need to live through a --stop, you must specify a pidfile.

COMMANDO'S

-S, --start [--] argumenten
    Ga na of het opgegeven proces bestaat. Indien een dergelijk proces bestaat, doet start-stop-daemon niets en sluit het af met foutstatus 1 (0 indien --oknodo opgegeven werd). Indien een dergelijk proces niet bestaat, start het een exemplaar ervan, door het programma te gebruiken dat ofwel met --exec opgegeven werd, ofwel met --startas als dat gebruikt werd. Eventuele argumenten die na -- opgegeven werden aan de commandoregel, worden ongewijzigd doorgegeven aan het programma dat opgestart wordt.

-K, --stop
    Gaat na of het opgegeven proces bestaat. Indien een dergelijk proces bestaat, geeft start-stop-daemon het het signaal dat met --signal opgegeven werd en sluit dan af met foutstatus 0. Indien een dergelijk proces niet bestaat, sluit start-stop-daemon af met foutstatus 1 (0 indien --oknodo opgegeven werd). Indien --retry opgegeven werd, zal start-stop-daemon controleren of het/de proces(sen) beëindigd werden.

-T, --status
    Gaat het bestaan van een opgegeven proces na en geeft een afsluitstatuscode terug die in overeenstemming is met de LSB-acties voor initialisatiescripts (LSB Init Script Actions) (sinds versie 1.16.1).

-H, --help
    Toon informatie over het gebruik en sluit af.

-V, --version
    Toon de programmaversie en sluit af.

OPTIES

  Vergelijkingsopties

--pid pid
    Ga na of een proces bestaat met het opgegeven pid (sinds versie 1.17.6). Het pid moet een getal zijn groter dan 0.

--ppid moeder-pid
    Ga na of een proces bestaat met het opgegeven moeder-pid moeder-pid (sinds versie 1.17.7). Het moeder-pid moet een getal zijn groter dan 0.

-p, --pidfile pidfile
    Check whether a process has created the file pidfile.

    Note: Using this matching option alone might cause unintended processes to be acted on, if the old process terminated without being able to remove the pidfile.

    Warning: Using this match option with a world-writable pidfile or using it alone with a daemon that writes the pidfile as an unprivileged (non-root) user will be refused with an error (since version 1.19.3) as this is a security risk, because either any user can write to it, or if the daemon gets compromised, the contents of the pidfile cannot be trusted, and then a privileged runner (such as an init script executed as root) would end up acting on any system process. Using /dev/null is exempt from these checks.

-x, --exec programma
    Check for processes that are instances of this executable. The executable argument should be an absolute pathname.

    Note: This might not work as intended with interpreted scripts, as the executable will point to the interpreter. Take into account processes running from inside a chroot will also be matched, so other match restrictions might be needed.

-n, --name procesnaam
    Check for processes with the name process-name. The process-name is usually the process filename, but it could have been changed by the process itself.

    Note: On most systems this information is retrieved from the process comm name from the kernel, which tends to have a relatively short length limit (assuming more than 15 characters is non-portable).

-u, --user gebruikersnaam|uid
    Check for processes owned by the user specified by username or uid.

    Note: Using this matching option alone will cause all processes matching the user to be acted on.

  Algemene opties

-g, --group groep|gid
    Verander naar groep of gid bij het starten van het proces.

-s, --signal signaal
    Samen met --stop gebruikt, geeft het op welk signaal moet gestuurd worden naar de processen die gestopt worden (standaard is dat TERM).

-R, --retry verlooptijd|schema
    Samen met --stop gebruikt, geeft het aan dat start-stop-daemon moet nagaan of het/de proces(sen) stoppen. Het zal bij herhaling controleren of er eventueel processen actief zijn die een overeenkomst opleveren, totdat dit voor geen enkel proces nog het geval is. Indien de processen niet afsluiten, dan zal het verdere actie ondernemen, zoals aangegeven door het schema.

    Indien verlooptijd opgegeven werd in plaats van schema, dan wordt het schema signaal/verlooptijd/KILL/verlooptijd gebruikt, waarbij signaal het signaal is dat opgegeven werd met --signal.

    schema is een lijst van minstens twee items, van elkaar gescheiden door slashes (/). Elk item kan -signaalnummer of [-]signaalnaam zijn, hetgeen betekent dat dit signaal gegeven moet worden, of verlooptijd, hetgeen betekent dat dit aantal seconden gewacht moet worden op het afsluiten van de processen, of forever, hetgeen betekent dat de rest van het schema zo nodig permanent herhaald moet worden.

    Indien het einde van het schema bereikt wordt en forever niet opgegeven werd, dan zal start-stop-daemon afsluiten met de foutstatus 2. Indien een schema opgegeven werd, dan wordt elk signaal dat met --signal opgegeven werd, genegeerd.

-a, --startas padnaam
    Samen met --start gebruikt, start dit het proces dat met padnaam opgegeven werd. Indien dit niet opgegeven werd, wordt als standaard het argument gebruikt dat bij --exec opgegeven werd.

-t, --test
    Toon de acties die ondernomen zouden worden en geef de passende terugkeerwaarde, maar onderneem geen actie.

-o, --oknodo
    Geef afsluitstatus 0 terug in plaats van 1 indien er geen acties ondernomen werden (zouden worden).

-q, --quiet
    Geef geen informatieve berichten weer. Toon enkel foutmeldingen.

-c, --chuid gebruikersnaam|uid[:groep|gid]
    Verander naar deze gebruikersnaam/uid vooraleer het proces te starten. U kunt ook een groep opgeven door een : toe te voegen en dan de groep of gid op te geven op dezelfde manier als voor het commando chown(1) (gebruiker:groep). Indien een gebruiker opgegeven wordt zonder een groep, dan wordt voor die gebruiker zijn primaire GID gebruikt. Bij het gebruik van deze optie moet u er zich van bewust zijn dat ook de primaire en bijkomende groepen ingesteld worden, ook als de optie --group niet opgegeven werd. De optie --group dient enkel voor groepen waartoe de gebruiker normaal niet behoort (zoals het voor een specifiek proces instellen van een groepslidmaatschap voor algemene gebruikers zoals nobody).

-r, --chroot hoofdmap
    Change directory and chroot to root before starting the process. Please note that the pidfile is also written after the chroot.

-d, --chdir pad
    Change directory to path before starting the process. This is done after the chroot if the -r|--chroot option is set. When not specified, start-stop-daemon will change directory to the root directory before starting the process.

-b, --background
    Typically used with programs that don't detach on their own. This option will force start-stop-daemon to fork before starting the process, and force it into the background.

    Warning: start-stop-daemon cannot check the exit status if the process fails to execute for any reason. This is a last resort, and is only meant for programs that either make no sense forking on their own, or where it's not feasible to add the code for them to do this themselves.

--notify-await
    Wachten tot het achtergrondproces een kennisgeving zendt dat het gereed is, vooraleer de dienst als opgestart beschouwd wordt (sinds versie 1.19.3). Dit past elementen van het 'readiness protocol' van systemd toe, zoals dit in de man-pagina sd_notify(3) gespecificeerd wordt. De volgende variabelen worden ondersteund:

    READY=1
        Het programma is gereed om zijn dienstverlening aan te bieden en dus kunnen we veilig afsluiten.

    EXTEND_TIMEOUT_USEC=aantal
        Het programma vraagt om de wachttijd uit te breiden met aantal microseconden. Dit stelt de huidige wachttijd opnieuw in op de opgegeven waarde.

    ERRNO=nummer
        Het programma sluit af met een foutmelding. Hetzelfde doen en van de errno-waarde de gebruikersvriendelijke tekenreeks tonen.

--notify-timeoutwachttijd
    Een wachttijd instellen voor de optie --notify-await (sinds versie 1.19.3). Wanneer de wachttijd verlopen is, zal start-stop-daemon afsluiten met een foutmelding en zal niet gewacht worden op de kennisgeving van gereedheid. Standaard is dit 60 seconden.

-C, --no-close
    Sluit een eventuele bestandsindicator niet bij het naar de achtergrond dwingen van de achtergronddienst (sinds version 1.16.5). Gebruikt met het oog op debuggen om de uitvoer van het proces te zien of om bestandsindicatoren om te leiden om de procesuitvoer te loggen. Enkel relevant als --background gebruikt wordt.

-N, --nicelevel geheel-getal
    Dit wijzigt de prioriteit van het proces voor het gestart wordt.

-P, --procsched beleid:prioriteit
    Dit wijzigt het procesplannerbeleid en de procesplannerprioriteit van het proces voor het gestart wordt (sinds versie 1.15.0). Facultatief kan de prioriteit opgegeven worden door een :, gevolgd door de waarde, toe te voegen. De standaardprioriteit is 0. De momenteel ondersteunde waarden voor beleid zijn other, fifo en rr.

-I, --iosched klasse:prioriteit
    Dit wijzigt de IO-plannerklasse en IO-plannerprioriteit van het proces voor het gestart wordt (sinds versie 1.15.0). Facultatief kan de prioriteit opgegeven worden door een :, gevolgd door de waarde, toe te voegen. De standaardprioriteit is 4, tenzij klasse idle is. In dat geval zal prioriteit steeds 7 zijn. De momenteel ondersteunde waarden voor klasse zijn idle, best-effort en real-time.

-k, --umask masker
    Dit stelt het umask van het proces in voor het gestart wordt (sinds versie 1.13.22).

-m, --make-pidfile
    Used when starting a program that does not create its own pid file. This option will make start-stop-daemon create the file referenced with --pidfile and place the pid into it just before executing the process. Note, the file will only be removed when stopping the program if --remove-pidfile is used.

    Note: This feature may not work in all cases. Most notably when the program being executed forks from its main process. Because of this, it is usually only useful when combined with the --background option.

--remove-pidfile
    Wordt gebruikt bij het stoppen van een programma dat zijn eigen pid-bestand niet verwijdert (sinds versie 1.17.19). Deze optie zal start-stop-daemon het bestand waarnaar met --pidfile verwezen wordt, doen verwijderen na het beëindigen van het proces.

-v, --verbose
    Geef uitvoerige informatieve mededelingen weer.

AFSLUITSTATUS

0   De gevraagde actie werd uitgevoerd. Indien --oknodo opgegeven werd, is het ook mogelijk dat er niets gedaan moest worden. Dit kan het geval zijn als --start opgegeven werd en er al een overeenkomstig proces actief was, of als --stop opgegeven werd en er geen overeenkomstige processen waren.

1   Indien --oknodo niet opgegeven werd en niets gedaan werd.

2   Indien --stop en --retry opgegeven werden, maar het einde van het schema bereikt werd en de processen nog steeds actief waren.

3   Elke andere fout.

Bij het gebruik van het commando --status, worden de volgende statuscodes teruggegeven:

0   Het programma is actief.

1   Het programma is niet actief en het pid-bestand bestaat.

3   Het programma is niet actief.

4   Niet in staat om de status van het programma te bepalen.

VOORBEELD
Start de achtergronddienst food tenzij er al een actief is (een proces met als naam food, dat actief is als gebruiker food met de pid in food.pid):

 start-stop-daemon --start --oknodo --user food --name food \
        --pidfile /run/food.pid --startas /usr/sbin/food \
        --chuid food -- --daemon

Stuur SIGTERM naar food en wacht tot 5 seconden op zijn beëindiging:

 start-stop-daemon --stop --oknodo --user food --name food \
        --pidfile /run/food.pid --retry 5

Demonstratie van een aangepast schema om food te stoppen:

 start-stop-daemon --stop --oknodo --user food --name food \
        --pidfile /run/food.pid --retry=TERM/30/KILL/5