NetBSD: k čemu slouží rc skripty

Ondřej Kobza 5. 6. 2014

Linux je v současnosti nejznámější unixový systém, ale zdaleka ne jediný. Co takhle si třeba zkusit NetBSD? V dnešním díle si společně rozebereme rc skripty. Tedy co to je a jak to funguje. Pokusím se také ukázat jejich použití v praxi, například při nastavování síťových rozhraní v NetBSD.

INIT

Init je program, který se spouští v poslední fázi bootování. Nabízí několik módů (states), konkrétně jich je 7. Pro nás jsou nejdůležitější první dva. První je jednouživatelský režim, kdy se nestartují některé daemony, rc skripty, jádro je přepnuto do „insecure“, tedy nezabezpečeného režimu a pracujete přímo pod rootem. Je to tedy vlastně nouzový mód, ve kterém má administrátor možnost opravit, co je potřeba (například když jste něco špatně nastavili v rc skriptech).

Pozor na to, že v jednouživatelském režimu jsou automaticky se připojující diskové oddíly připojeny jen pro čtení. Abyste mohli cokoli změnit, musíte systémové oddíly na disku připojit pro čtení i zápis ( mount -w /dev/...) Druhý je víceuživatelský režim, kdy se startuje navíc především /etc/rc. Pro více informací tu jsou k dispozici manuály; man init.

RC SKRIPTY

rc

rc je řídicí skript, který řídí spouštění různých služeb a je vyvolán programem init. Samotný rc vyvolává další rc skripty: rc.shutdown; rc.conf; rc.local; rc.subr; a dále skripty v adresářích */rc.d; */defaults; */rc.conf.d Všechny tyto soubory a adresáře jsou umístěny v  /etc.

Než se začnu zabývat jednotlivými skripty, chtěl bych vás upozornit na to, že neuváženým zásahem do některého z rc skriptů si můžete poškodit svůj systém NetBSD.

/etc/rc.shutdown:

Jde o příkazový skript, který je volán programem shutdown. /etc/rc.shutdown se tedy podílí na procesu vypínání systému. Samotný skript zajišťuje vypnutí pouze některých služeb.

/etc/rc.local:

Tento soubor je poslední volaný rc skript při bootování. Slouží ke spouštění místních daemonů, které nezapadají do systému  rc.d

/etc/rc.subr:

Obsahuje funkce, které běžně používá program rc a také funkce, které používají skripty v adresáři  /etc/rc.d

/etc/defaults

V tomto adresáři se nachází mj. i soubor rc.conf. Ten v žádném případě needitujte! K editaci totiž slouží soubor /etc/rc.conf. V /etc/defaults/rc.conf  jsou výchozí systémová nastavení, která můžete měnit právě v /etc/rc.conf. Pokud něco v souboru /etc/rc.conf opravdu rozbijete a ani nevíte co, je nejjednodušší cestou nahradit /etc/rc.conf souborem rc.confdefaults.

/etc/rc.d

Jde o adresář, ve kterém jsou umístěny sh skripty. Ty jsou při startu, vypínání nebo přímo při běhu systému volány řídícím skriptem rc. Nastavení pro volání těchto skriptů majoritním skriptem rc jsou uložena v /etc/defaults/rc.conf; respektive v /etc/rc.conf. Jednotlivé skripty se dají samozřejmě spustit také při běhu systému. Příklad uvedu na  xdm:

# /etc/rc.d/xdm onestart

Po zadání tohoto příkazu se spustí xdm, vy se přihlásíte a dostanete se tak do výchozího grafického prostředí. V NetBSD je jako výchozí nastaven správce oken  twm.

Kromě argumentu onestart lze použít ještě další. Popíšu všechny základní:

  • start – zkontroluje se, zda je příslušná služba (program) spuštěná, pokud ne, spustí se Pozn.: Spustí se pouze program povolený v rc.conf  nebo povolený ve výchozím stavu!
  • stop – zastaví spuštěný program
  • onestart – spustí program jednorázově, přestože není povolen v  rc.conf
  • restart – funguje, jako byste zadali stop a poté start
  • status – zobrazí stav zvolené služby

Poslední uvedený argument ukážu na příkladu:

# /etc/rc.d/xdm status

$xdm is not enabled - see rc.conf(5).
Use the following if you wish to perform the operation:
  /etc/rc.d/xdm onestatus

Z výpisu je vidět, že start xdm není povolen (v rc.conf  je tedy položka xdm=NO). Pro zobrazení stavu tedy musím zadat následující příkaz:

# /etc/rc.d/xdm onestatus
xdm is not running.

Základní skripty v /etc/rc.d, které zajišťují běh dalších služeb:

  • NETWORKING
  • SERVERS
  • LOGIN
  • DAEMON

Nyní se konečně dostáváme k již tolikrát zmíněnému  /etc/rc.conf.

/etc/rc.conf

Je to systémový konfigurační soubor, který specifikuje, jaké služby se mají spouštět při startu systému.

Službu lze povolit více způsoby, jsou to tyto:

YES; ON; TRUE; 1

Zakázat se pak dá takto:

NO; OFF; FALSE; 0

Do rc.conf tedy můžete zapsat například xdm=YES, stejně jako xdm=ON  atd.

Aby systém vůbec začal bootovat do víceuživatelského režimu a začaly se spouštět postupně rc skripty, je nutné mít v rc.conf  tuto položku:

rc_configured=YES

Kompletní seznam toho, co můžete povolit či zakázat, najdete na manuálových stránkách.

Nyní pojďme na konfiguraci sítě, u které využijeme i rc skripty.

Konfigurace sítě

Základní konfigurace sítě pro připojení k internetu se dá provést už při samotné instalaci NetBSD. Pro konfiguraci sítě vašeho systému pomocí DHCP do /etc/rc.conf vložte dhclient=YES. Před tímto krokem musíte nicméně povolit DHCP (taky v  rc.conf).:

ifconfig_*=dhcp

Za * dosadíte rozhraní vašeho připojení (např. lo0). Ten poznáte z výpisu  ifconfig.

Dále byste měli zadat svůj hostname, a to opět do  /etc/rc.conf.

hostname=váš_hostname

Výchozí routu přidáte opět pomocí jednoho řádku do  /etc/rc.conf:

defaulroute=IP_adresa

Do /etc/resolv.conf přidejte IP adresu nameserveru. K práci se sítí určitě využijete program ifconfig. Další konfigurace se dají provést v  /etc/hosts.

widgety

Se sítí by podle mých zkušeností neměly být větší problémy. Snad jen, že pokud nemáte definovaný hostname, tak systému při snažení se připojit k internetu trvá, než najde správnou IP adresu. Otravné je to zejména při instalaci softwaru pomocí pkgin (binární balíky), ale i přes pkgsrc. Proto byste měli svůj hostname definovat.

V příštím díle rozeberu možnosti instalace softwaru na NetBSD, kterých je opravdu mnoho.

Našli jste v článku chybu?
Lupa.cz: Proč jsou firemní počítače pomalé?

Proč jsou firemní počítače pomalé?

120na80.cz: Pálení žáhy: která jídla ne a co nás uzdraví?

Pálení žáhy: která jídla ne a co nás uzdraví?

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

Root.cz: Hořící telefon Samsung Note 7 zapálil auto

Hořící telefon Samsung Note 7 zapálil auto

Podnikatel.cz: Tyto pojmy k #EET byste měli znát

Tyto pojmy k #EET byste měli znát

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Fyzioterapeutka: Chůze naboso? Rozhodně ano!

Fyzioterapeutka: Chůze naboso? Rozhodně ano!

Vitalia.cz: Pryč se zastaralým stravováním ve školách

Pryč se zastaralým stravováním ve školách

Podnikatel.cz: Letáky? Lidi zuří, ale ony stále fungují

Letáky? Lidi zuří, ale ony stále fungují

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Jsou vegani a vyrábějí nemléko

Jsou vegani a vyrábějí nemléko

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip