Portál AbcLinuxu, 30. dubna 2025 07:56

Jak spustit skript při startu systému?

1. skript vložíme do /etc/init.d/

2. vytvoříme symbolický link na skript do /etc/rc*.d/ANNskript.sh

Startovací skripty vycházejí z init-skriptů SysV, pro které platí následující pravidla:

A musí být nahrazeno písmenem, které určuje, co se má udělat - možnosti jsou S - nastartovat, K - ukončit a X - ignorovat

NN reprezentuje dvě číslice, které udávají pořadí, v jakém se skripty mají spouštět (čím nižší číslo, tím dřív se skript spustí)

Hvězdička v rc*.d musí být nahrazena číslem runlevelu, ve kterém se má skript spustit. Příklad níže je platný pro Debian, ve kterém je přednastaven runlevel 2.

Příklad:
cp skript.sh /etc/init.d/skript.sh
ln -s /etc/init.d/skript.sh /etc/rc2.d/S09skript.sh
Při spouštění skriptu se mu předává parametr "start" nebo "stop" (podle toho, jestli symlink začínal S nebo K) - jeden skript tak lze použít jak při startu (spuštění služby, načtení nastavení), tak při vypnutí počítače (zastavení služby, uložení nastavení)

Zjednodušený příklad:
#! /bin/sh
case "$1" in
  start|restart|force-reload)
    #příkazy pro spuštění služby
    ;;
  stop)
    #příkazy pro ukončení služby
    ;;
esac

exit 0
Jako alternativa k tomuto postupu může v některých distribucích sloužit soubor /etc/rc.local, jehož obsah je spouštěn při startu systému.

Související dokumenty

Debian Policy Manual - The Operating System (externí dokument)
Init (slovník abclinuxu) (pojem)

Dokument vytvořil: madA, 10.2.2006 22:33 | Poslední úprava: fakenickname, 8.6.2009 23:23 | Další přispěvatelé: trekker.dk, Eregon | Historie změn | Zobrazeno: 23096×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.