Soupis runlevelu je v clanku podan jako hotova vec, pritom vsak takto popsany neplati univerzalne. Napr. nektere distribuce maji graficke rozhrani jako runlevel 4.
Pasaz o symlincich 'Sxxservice' a 'Kxxservice' je IMHO popsana trosku chaoticky. Postradam tam to podstatne: Pri startu systemu se (v poradi danem cisly) spousti vsechny Sxx (startovaci) scripty, pri shutdownu se naopak spousti vsechny Kxx (killovaci) scripty.
Neznam Gentoo, ale cekal bych, ze '/sbin/depmod' slouzi k tomu samemu, jako u vsech ostatnich distribuci, a ne k reseni zavislosti spoustecich scriptu.
Sxx a Kxx jsou tam dobře..ono to opravdu nefunguje tak, že bych při vylejzání z RL nejdříve spustil Kxx RL z který vylejzám a pak pustil Sxx RL do kterého se plazím..všechny Kxx i Sxx jsou RL, do kterého lezu, viz patřičný man, případně trochu experimentování..BTW, jak by jste pak udělal RL6? Jako hromadu Sxx skriptů, co budou ve skutečnosti killovat? Když ukončuju systém jsem pořád v RL6 a nikdy z ní totiž nevylezu, proto je RL6 snůžka KXX skriptů a pokud tam máte SXX skript, máte někde něco špatně...občas stačí logicky myslet:).
..já má třeba na Debianu RL 2 a Xka mě taky běží. Nejsou ty RL volitelné podle obsahu adresářů a to co je v článku uvedené je pouze RH/SuSE/Mandrage dogma? /sbin/depmod se používá na zjištění závislostí mezi init skripty? Kde je pak to "kamsi mimo"? Já měl za to, že se používá pro zjištění závislostí kernelovských modulů (dependet modules), a něco takového tvrdí i man depmod.
xka pouštím občas jako /etc/init.d/gdm start, občas jako /etc/init.d/kdm start a občas taky jako xdm start:). Nejmenuje se tën nástroj na konfiguraci chconfig? Nestálo by za to ho alespoň z mínit s několika příklady? Nevíte náhodou někdo o něčem podobném pro Debian (i kdzž nevím, kde by to mělo brát informace, chconfig to bere skutečně z kometáře v init.d, kdežto Debian tam v kometáři nic extra nemívá:()
Jak uz jsem psal vyse, je to "depscan.sh" ne "depmod" (takova drobna chybka ... chm, se muze stat kazdymu, ze? :) ). Kazdopadne pokud jde o chkconfig - na RH jsem ho mel dost v oblibe, ale ted pokud jde o gentoo, tak "rc-update -s" je daaaleko lepsi/prehlednejsi.
Sakra ... konecne mam misto 6ti runlevelu jen tolik, kolik ruznych startupu potrebuju (cili momentalne jeden az 2) plus "boot" a "nonetwork" (ale i ten by se dal vyhodit).
Nechci tu zbytecne vyvolavat flames ... ale pokud jde o Gentoo, stoji to alespon za podivani-se, protoze "/etc/conf.d" a "/etc/env.d" je idea, ktera je proste k nezaplaceni ... HALELUJAH! :)))
Souhlas. Obzvlast "env.d" je neco do ceho jsem se zalaskoval na prvni pohled. Jen s tim conf.d se obcas deje neco zvlastniho. Napriklad novy ebuild (vcera x86 stable) iptables presouva puvodni kofniguraci rules (tj. pred "prechroustanim") z /etc/init.d/iptables do /var/lib/iptables/rules-save, kde se samozrejme ukladaji jiz "prechroustana". To mi pripada jako ponekud zvlastni krok ... :)))
"kamsi mimo" je v pripade Gentoo /var/lib/init.d/depcache. Ostatne cely adresar /var/lib/init.d je plny zajimacich souboru a adresaru (envcache atd.), napriklad adresar statrted, ktery obsahuje symlinky do /etc/init.d na vsechny spustene sluzby v dane runlevelu (proto i ta volba "zap", ktera se stara o smazani nejen prislusnych locku, socku atd. ale i techto symlinku)
-- "V tomto bodě se inicializační proces liší u jednotlivých distribucí. Většina vychází buď z modelu System V, nebo BSD."
V kterem ze to bode? Rozhodne ne tam, kde pise autor, tedy po spusteni "/etc/init.d/rc 5". Marne bychom hledali treba na Slackwaru (o nemz se rika, ze ma bsd-style init) uz samotny adresar /etc/init.d..
Ve skutecnosti se to muze lisit mnohem driv. Treba ve slackwaru je ten bod uz v obsahu souboru /etc/inittab:
najdeme tam neco takoveho: si:S:sysinit:/etc/rc.d/rc.S
ale to jen tak pro doplneni.
Samozřejmě jsem to psal velmi obecně, kdybych měl uvést všechny možnosti, lišit se to může už u bootloaderu :-) Jestli se tam spouští "/etc/rc.S" nebo "/sbin/rc sysinit", je sice odlišné, ale principiálně totéž.
Účelem je vyzdvihnout to, co hodlám v příštím díle trochu kritizovat. Nechtěl jsem přeložit man stránku initu.
Jinak se omlouvám za ten /sbin/depmod, samozřejmě tam má být /sbin/depscan.sh
Také SuSE používá pokročilejší systém odvození závislostí, podobně jako Gentoo:
# Provides: FOO
# Required-Start: $syslog $remote_fs
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
Je hezké, jak si tady všichni notujete, ale co si takhle nejdřív ověřit fakta? Co si ověřit, zda to, co kritizujete, je skutečně pravda? Používal jsem SuSE ve verzích 7.3, 8.1, 8.2, 9.0 a 9.1 a nikde se při 'rcnetwork restart' nerestartovaly automaticky i "závislé" služby. Ono se stačí do toho skriptu podívat, abyste zjistili, že je to nesmysl. Ty "závislosti" slouží k jedinému účelu: podle nich přiřadí insserv čísla jednotlivým symbolickým linkům v rc#.d, aby se služby při startu a ukončování spouštěly a ukončovaly ve správném pořadí. Tož tak.
Presne tak, toto chovani by me asi v praxi znicilo ;-).
BTW, init v NetBSD umi take zavislosti (rcorder), ale pouziva je jen pri spousti systemu (prechod single user -> multiuser), takze pri rucni praci (/etc/rc.d/* ) se vam pod ruce neplete. Pouziti je velmi podobne jako zminovana ukazka ze SuSE (kdepak na to asi chlapci prisli? :-)
Jinak, bylo receno ze init ve Slackware je BSD-style. Nedavno jsem mel jednu slakovou masinu v ruce, a nepripadlo mi... prinejmensim tam byl inittab a nevidel jsem rc.conf.
Poznamka v zaveru, ze velke distrubuce *bohuzel* zustavaji u klasickeho modelu init skriptu, prilis zjednodusuje situaci. IMHO to nedelaji z duvodu nejake zkostnatelosti, ale proto, ze tento model se dostal do LSB, viz http://www.linuxbase.org/modules.php?name=specrev&url=http://www.linuxbase.org/spec/book/LSB-generic/LSB-generic/book1.html
kapitola 13.
Pro nekomercne orientovane distribuce neni problem vyrazne menit svoji strukturu, ale pokud jsou ve hre vazby na komercni subjekty, pak zmeny v distribucich se promitaji do vyssich nakladu na vyrobu SW pro Linux. Jisty konsensus je zde nutny a zatim se to resi pres LSB. Takze pokud chcete prosadit jiny inicializacni system u komercne orientovanych distribuci (napr. SUSE), pak musite zacit u LSB.