ls -1TörténelemNépszerű témákNépszerű fórum témákHardverIRC#hup.hu megtalálható a Freenode (irc.freenode.net) hálózaton. Nézz be! Linux Weekly NewsLinux DevicesFreeBSD Project NewsOpenBSD JournalNetBSD NewsSun On The Record
|
Miert is *** a linux kernel?Mostmar inditanom kellet egy ilyen topicot, nem birom! Ide mindeki leirhatja mitol kezdett el sirni. Nalam most ez okozott kemeny testi fajdalmat: drivers/sbus/char/bbc_envctrl.c:
static void do_envctrl_shutdown(struct bbc_cpu_temperature *tp)
{
static int shutting_down = 0;
static char *envp[] = { "HOME=/", "TERM=linux", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
char *argv[] = { "/sbin/shutdown", "-h", "now", NULL };
char *type = "???";
s8 val = -1;
if (shutting_down != 0)
return;
if (tp->curr_amb_temp >= amb_temp_limits[tp->index].high_shutdown ||
tp->curr_amb_temp < amb_temp_limits[tp->index].low_shutdown) {
type = "ambient";
val = tp->curr_amb_temp;
} else if (tp->curr_cpu_temp >= cpu_temp_limits[tp->index].high_shutdown ||
tp->curr_cpu_temp < cpu_temp_limits[tp->index].low_shutdown) {
type = "CPU";
val = tp->curr_cpu_temp;
}
printk(KERN_CRIT "temp%d: Outside of safe %s "
"operating temperature, %d C.\n",
tp->index, type, val);
printk(KERN_CRIT "kenvctrld: Shutting down the system now.\n");
shutting_down = 1;
if (call_usermodehelper("/sbin/shutdown", argv, envp, 0) < 0)
printk(KERN_CRIT "envctrl: shutdown execution failed\n");
}
A lenyeget kiemeltem a konnyeb eszrevehetoseg erdekeben. Igen kerem szepen ... tavolutisuk el az /sbin/shutdown -t es had egjen a vas! Meg egyebkent is userland programot hivni ... istenem.
»
|
KeresésNavigációBelépésÁllásajánlatokHWSWFriss blogbejegyzésekHUP napi hírlevél__define__ kernelLegfrissebb HUP videókLegfrissebb HUP képekSzavazásElégedett vagy a Microsoft böngészőválasztó képernyőjével? Igen. 24% Nem. 5% Nem használok Microsoft terméket. 50% Csak az eredmény érdekel. 20% Összes szavazat: 452
Új felhasználók
InformációKövess minket! |
ha megnézed, talán azért van ez így megcsinálva, hogy a gépet _SZABÁLYOSAN_ állítsa le és ne csak lelője mindenfelé előskészület nélkül, és a leállítás lehet disztrofüggő, hogy ki mit hogy csinál...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
es szerinted erre a shutdown hivasa e megfelelo? ehh
... az egy dolog, ígaz elég gányul néz ki ...
* bbc_envctrl.c: UltraSPARC-III environment control driver.
de viszont ilyen hw-t is kevesen használnak, mivel ebben a driverben van benne...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
Millernek fel kellene dobni, hogy jó e ez így ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
A kernel nehogymar azert vesszen a funkcionalitasabol, mert en kitorlok rootkent egy fajlt. Erzed a problemat nem?
Szerintem nem allja meg a helyet a magyarazatod, mert a leallitas _NE_ disztrofuggo legyen. Marmint persze, a szolgaltatasok leallitasa legyen az, de ez a kodreszlet nem arrol szol.
szerintem az a rendszergazda egyéni problámája, hogy miket töröl ki és _szerintem_ az LSB miatt csinálta meg ilyenre ..
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
ennyi erovel a kernel nem veszt a funkcionalitasabol amikor letorlod az initet peldaul?
ne vicceljunk mar uraim.
synapse
uram azert ket kulonbozo dologrol van szo.
Annyiban kulonbozo, hogy ha az initet letorlod, akkor el se indul a kernel; ha a shutdownt, semmi problema, csak nem fog szabalyosan leallni a cucc, lasd lent a kommentet.
P.s.: Az embernek vannak gyenge pillanatai :-)
attol hogy nincs inited a kernel miert ne indulna el? nem vagy tisztaban a dolgokkal
userspace is kell, ha akarod hasznalni
Mert panic-kal elszall?
Tenyleg nem vagyok tisztaban a dolgokkal? Akkor befogom. Miert indulna el?
EDIT: ujrafogalmaztam :D
persze, a kernel is kikuldi a sigtermet meg a sigkillt mindenkinek de akkor peldaul nem fog lefutni az init.d-alol a scriptje
synapse
es? SIGTERM,SIGKILL -tol meg semmilyen programnak nem kene olyan szinten megolni magat hogy az a kovetkezo inditasnal problemas legyen. egyebkent is mi a francnak clean shutdown? ha en kihuzom a konnektorbol a gepem akkor azt varom el hogy problema nelkul alljon fel a rendszer.
mert peldaul nem tud idoben leallni sigterm miatt es a sigkillre elterminal -> otthagyja a pid, lock stb tempfileokat :)
synapse
hanyszor fordult ez elo veled? :)
megtortenhet elegge konnyen, peldaul ha kivan swapelve a process/nagy terheles mellett. Amugy feltakarit maga utan indulasnal szoval annyira nem gaz.
synapse
Ha átnevezem, és átírom a kernel paramétert, akkor nem.
"A kernel nehogymar azert vesszen a funkcionalitasabol, mert en kitorlok rootkent egy fajlt. Erzed a problemat nem?"
rotfl
Lol
Tipikus quickfix, amit otthagytak, mert mukodik.
szóval ez csak egy workaround hogy hogy a szolgáltatások ne szálljanak el ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
és itt a magyarázat a kommentben:
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
a kernel az init en kivul semmit ne hivjon meg!
egyáltalán minek a kernel, hisz az emacs amúgyis egy kész oprendszer :)
`/sbin/init 0` ?
Mikor válaszolsz a levelemre végre? :)
--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.
ja bocs, elfelejtettem holnap hivj fel mert meg nem tudom hogy otthon leszek-e vagy az orson. de ha jovok orsre elrakom a cuccot.
Emiatt írtam levelet, hogy ne felejtsd el plz bepakolni reggel. :)
--
Sokan nincsenek tudatában annak, / hogy egyszer mindenki meghal. / Akik ráébrednek erre, / azonnal abbahagyják az ellenségeskedést.
> Meg egyebkent is userland programot hivni ...
Írhatsz shutdown szkriptet, ami ilyenkor is lefut. De jó.
Hanyas kernel verzió ?
Az enyiben(linux-2.6.23-gentoo-r5) ezt hivja az említett függvény (true -val):
int orderly_poweroff(bool force) { int argc; char **argv = argv_split(GFP_ATOMIC, poweroff_cmd, &argc); static char *envp[] = { "HOME=/", "PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL }; int ret = -ENOMEM; struct subprocess_info *info; if (argv == NULL) { printk(KERN_WARNING "%s failed to allocate memory for \"%s\"\n", __func__, poweroff_cmd); goto out; } info = call_usermodehelper_setup(argv[0], argv, envp); if (info == NULL) { argv_free(argv); goto out; } call_usermodehelper_setcleanup(info, argv_cleanup); ret = call_usermodehelper_exec(info, UMH_NO_WAIT); out: if (ret && force) { printk(KERN_WARNING "Failed to start orderly shutdown: " "forcing the issue\n"); /* I guess this should try to kick off some daemon to sync and poweroff asap. Or not even bother syncing if we're doing an emergency shutdown? */ emergency_sync(); kernel_power_off(); } return ret; }2.6.22 előtt bármi
még 2.6.22-esben is a fentebbi kód van, akkor a 2.6.23-asba került bele ...
linux v2.6.22.15 + madwifi v0.9.3.3-mal itt
debian gnu/linux @ linux-2.6.22.16-pancs1
Azt akarod mondani, hogy kicsit máshogy leírták ugyanazt?
Nem. Ez, ha nincs userspace stuff akkor is leáll.