Příkaz Chkconfig se používá k nastavení, zobrazení nebo změně služeb, které jsou nakonfigurovány tak, aby se spouštěly automaticky během spouštění systému.
Tento článek obsahuje 7 praktických příkladů, které vysvětlují, jak používat příkaz chkconfig.
1. Zkontrolujte stav spuštění služby ze skriptu Shell
Když spustíte příkaz chkconfig pouze s názvem služby, vrátí hodnotu true, pokud je služba nakonfigurována pro spuštění. Následující úryvek kódu ukazuje, jak zkontrolovat, zda je služba nakonfigurována pro spouštění ze skriptu prostředí.
# vi check.sh chkconfig network && echo "Network service is configured" chkconfig junk && echo "Junk service is configured" # ./check.sh Network service is configured
Můžete také konkrétně zkontrolovat, zda je nakonfigurován pro konkrétní úroveň běhu nebo ne.
# vi check1.sh chkconfig network --level 3 && echo "Network service is configured for level 3" chkconfig network --level 1 && echo "Network service is configured for level 1" # ./check1.sh Network service is configured for level 3
2. Zobrazit aktuální stav služeb spouštění
Možnost –list zobrazí všechny služby s aktuálním stavem konfigurace spuštění.
# chkconfig --list abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ...
Chcete-li zobrazit pouze služby, které jsou nakonfigurovány tak, aby se spouštěly během spouštění systému, proveďte následující. Upozorňujeme, že to předpokládá, že úroveň spouštění vašeho systému je 3.
chkconfig --list | grep 3:on
Poznámka :Chcete-li zobrazit všechny dostupné úrovně běhu systému, viz 6 fází procesu spouštění systému Linux
Chcete-li zobrazit konfiguraci spuštění konkrétní služby, grep výstup „chkconfig –list“ pro tuto službu.
chkconfig --list | grep network
3. Přidejte do Startup novou službu
Použijte volbu –add pro přidání konkrétní služby do seznamu služeb, které budou spuštěny během restartu systému.
Následující příklad ukazuje, jak přidat novou službu (například iptables) do seznamu služeb, které je třeba spustit. Příkaz „chkconfig –add“ také automaticky zapne úroveň 2, 3, 4 a 5, jak je uvedeno níže.
# chkconfig --list | grep iptables # chkconfig --add iptables # chkconfig --list | grep iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Poznámka:„chkconfig –add“ pouze přidá existující službu do seznamu spouštění. Pokud služba neexistuje, měli byste ji nejprve nainstalovat, než ji přidáte do seznamu po spuštění systému. I když je to docela zřejmé, stojí za to to zmínit, protože tuto chybu může udělat nováček.
4. Odebrat službu ze spouštěcího seznamu
Následující příklad ukazuje, že služby ip6tables jsou nakonfigurovány pro spuštění.
# chkconfig --list | grep ip6tables ip6tables 0:off 1:off 2:off 3:on 4:off 5:off 6:off
Chcete-li jej odstranit ze spouštěcího seznamu, použijte volbu –del, jak je uvedeno níže.
# chkconfig --del ip6tables # chkconfig --list | grep ip6tables
5. Zapnutí nebo vypnutí služby pro vybranou úroveň běhu
Někdy možná nebudete chtít smazat celou službu. Místo toho můžete chtít příznak zapnout nebo vypnout pro konkrétní úroveň běhu (pro konkrétní službu).
Následující příklad vypne službu nfserver pro úroveň 5
# chkconfig --level 5 nfsserver off
Můžete také kombinovat více úrovní. Následující příklad vypne nfsserver pro úroveň 3 i 5.
# chkconfig --level 35 nfsserver off
6. Soubory skriptů v podadresářích rc.d
Kdykoli přidáte nebo odeberete službu z ovládacího prvku chkconfig, provede v podadresářích /etc/rc.d následující.
- Když je spuštěn příkaz chkconfig –add, vytvoří soubor symbolického odkazu pro spuštění a zastavení služby v odpovídajícím adresáři rc.
- Když je spuštěn příkaz chkconfig –del, odstraní soubor se symbolickým odkazem z odpovídajícího adresáře rc.
Následující příklad ukazuje, že xinetd je povolen pro úroveň běhu 3 i 5.
Takže xinetd bude mít dva soubory v adresáři rc3.d a dva soubory v adresáři rc5.d. Soubor, který začíná písmenem K, se použije při vypínání (K znamená kill). Soubor, který začíná písmenem S, se použije při spouštění (S znamená start).
# chkconfig --list | grep xinetd xinetd 0:off 1:off 2:off 3:on 4:off 5:on 6:off xinetd based services: # cd /etc/rc.d/rc3.d # ls | grep xinetd K08xinetd S14xinetd # cd /etc/rc.d/rc5.d # ls | grep xinetd K08xinetd S14xinetd
7. rcx.d Změny adresáře pro operaci Add
Když do ovládacího prvku chkconfig přidáte novou službu, automaticky se zapnou výchozí úrovně běhu této služby a soubory se vytvoří v odpovídajících adresářích rcx.
Pokud například v ovládacím prvku chkconfig neexistuje služba nfsserver, nebudou v adresářích /etc/rc.d/rc*.d přítomny žádné spouštěcí soubory služby nfsserver, jak je uvedeno níže.
# chkconfig --list | grep nfsserver nfsserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off # ls /etc/rc.d/rc3.d | grep nfsserver # ls /etc/rc.d/rc5.d | grep nfsserver
Po přidání služby nfsserver uvidíte pod těmito adresáři symbolické odkazy.
# chkconfig --add nfsserver nfsserver 0:off 1:off 2:off 3:on 4:off 5:on 6:off # cd /etc/rc.d/rc3.d # ls -l | grep nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver # cd /etc/rc.d/rc5.d # ls -l | grep nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 K08nfsserver -> ../nfsserver lrwxrwxrwx 1 root root 12 2011-06-18 00:52 S14nfsserver -> ../nfsserver
Když službu vypnete pomocí volby –del nebo –level, odpovídající soubor se symbolickým odkazem v adresáři rcx.d bude smazán, jak je uvedeno níže.
# chkconfig --level 5 nfsserver off # ls /etc/rc.d/rc5.d | grep nfsserver