Problém: Po startu se mi nespouští démon a musím ho startovat ručně

Odpověď: Startovací skript nemá link v adresáři pro příslušný runlevel. U některých programů je to takto zařízeno dokonce i v distribuční verzi naschvál, aby byl správce donucen program nejprve správně nakonfigurovat a pak teprve si sám zařídil automatické spouštění.

  1. Použijte (téměř) intuitivně ovládaný runlevel editor (grafický tksysv, textový ntsysv) a přidejte spouštění démona do vhodných úrovní - v RH nejčastěji zřejmě pro 2, 3, 5 startovací skript, pro 0, 1, 6 ukončovací.
  2. V RH systémech použijte chkconfig, který používá informace uložené přímo ve spouštěném skriptu v adresáři /etc/init.d, typicky takto:
    # Startup script for the Apache Web Server
    #
    # chkconfig: 35 55 45
    
    např. příkazem
    chkconfig --level 35 httpd on
    
    zajistíte spouštění služby httpd v runlevelech 3 a 5 s prioritou podle údajů v /etc/init.d/httpd (tj. 55 pro start a 45 pro kill) - viz chkconfig (8).
  3. Udělejte si příslušné symlinky sami - pro ssh takto:
    for i in \
     /etc/rc0.d/K45sshd /etc/rc1.d/K45sshd \
     /etc/rc2.d/S55sshd /etc/rc3.d/S55sshd \
     /etc/rc5.d/S55sshd /etc/rc6.d/K45sshd
    do
     ln -s ../init.d/sshd $i
    done
    
    Nebo pro rwhod takto:
    for i in \
     /etc/rc0.d/K20rwhod \
     /etc/rc1.d/K20rwhod \
     /etc/rc2.d/S60rwhod \
     /etc/rc3.d/S60rwhod \
     /etc/rc5.d/S60rwhod \
     /etc/rc6.d/K20rwhod
    do
     ln -s ../init.d/rwhod $i
    done
    
  4. Program setup - system services: podobně jako (tk|nt)sysv
  5. V dostatečně novém redhatu konfiguračním programem redhat-config-services

Všechna tato řešení dělají nakonec totéž. To hlavní, co je potřeba zajistit, je existence startovacích (start, S*) a ukončovacích (kill, K*) souborů v adresářích /etc/rc3.d, resp. /etc/rc5.d pro spouštění příslušného programu v runlevelu 3, resp. 5. Obvykle jsou zde jenom symbolické odkazy do adresáře /etc/init.d, kde jsou "skutečné verze" těchto spouštěcích skriptů. Skripty se spouští postupně, dvojčíslí za písmenem S nebo K určuje pořadí spouštění. Příklady jsou uvedeny pro distribuce s FHS 2.0 (Debian, Red Hat od verze 7 apod.), v debianovských distribucích je k dispozici je také program update-rc.d, v SuSE Linuxu je obvykle lepší se řídit vlastními nástroji této distribuce. Ve starších distribucích mohou být adresáře rc?.d a init.d podadresáři /etc/rc.d.

Odkazy: