Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Nieaktualne pliki PID - jak kasować po crash'u ?  (Przeczytany 5300 razy)

sacrebis

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« dnia: 2008-02-25, 17:08:35 »
Co usuwa "stale pides" po crash'u systemu ?

Nie mogę się niczego doszukać ani w init.d, ani jakiejś kontrenej informacji co się z tymi pid plikami powinno stać. Google też nie pomaga. Znalazłem programik stalepid - ale nie widzi mi się poprawiane wszystkich skryptów init.d.

Dlaczego mnie to boli:

Mam sobie kilka chroot'ow w których chodzą sobie apache, postgres'y,serwery pocztowe etc... Czasem zdarzy się jakaś awaria zasilania/wymuszony restart i moje usługi nie chcą wstawać.

Przyczyną jest, że skrypty etc/init.d/* sprawdzają czy są pliki pid - i jeśli są to proces nie wstaje. Restart usług (usuwa pida), więc rozwiązuje problem.

Oczywiście bez chroot'a wszystkie usługi wstają, tak jak należy.

Chodzi mi o jakiś taki ogólny przepis jak to powinno działać.

Czy ja mam ręcznie czyści /var/run ???

dystrybucja: SLES 9.x
a chroot to różne: kilka mieszańców, jeden PLD, jeden Ubuntu

benyo

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« Odpowiedź #1 dnia: 2008-02-25, 18:24:00 »
Jesli twoja dystrybucja tego nie ma to sam sobie napisz taki skrypt albo dodaj linijke do poczatkowego skryptu uruchomieniowego, gdzie na samym poczatku po zamontowaniu dyskow
a wpis w skrypcie bylby prosty:

/bin/rm -f /var/run/* /var/lock/* /var/run/*.pid 1>/dev/null 2>/dev/null

w miejscu wymienionych sciezek dostepu do plikow wpisz swoje takie jakie potrzebujesz, te sa przykladowe i bedzie ci po kazdym uruchamianiu kasowal wszystkie niepotrzebne pliki zanim zaczna sie uruchamiac uslugi.

sacrebis

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« Odpowiedź #2 dnia: 2008-02-25, 23:01:05 »
>> Jesli twoja dystrybucja tego nie ma to sam sobie napisz taki skrypt ...

ok, mogę zrobić ale chodzi mi o to czy jest jakieś RFC, jakiś poradnik, manual cokolwiek który nakazuje/zaleca/sugeruje aby PIDy w ten sposób obsługiwać ?

benyo

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« Odpowiedź #3 dnia: 2008-02-26, 08:07:47 »
Cytat: sacrebis
ok, mogę zrobić ale chodzi mi o to czy jest jakieś RFC, jakiś poradnik, manual cokolwiek który nakazuje/zaleca/sugeruje aby PIDy w ten sposób obsługiwać ?
Na tym polega wlasnie idea Open Source ze mozesz to zrobic.
Mozesz poszukac w dokumentacji swojej dystrybucji ale pliki startowe w roznych dystrybucjach roznie wygladaja i sa zorganizowane i niektorzy tworcy zadbali o to zeby byl porzadek i nastepowalo czyszczenie zbednych lockow a niektorzy nie zadbali i trzeba sobie to zrobic samemu.

sacrebis

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« Odpowiedź #4 dnia: 2008-02-26, 14:30:17 »
Cytat: zbysiup
Na tym polega wlasnie idea Open Source ze mozesz to zrobic.
ale chyba Open Source nie wyklucza stosowanie standardów, specyfikacji (np. LSB) ... albo jakiś chociaż zalecenia ?

Cytat: zbysiup
Mozesz poszukac w dokumentacji swojej dystrybucji
Po pierwsze mam wiele dystrybucji - więc dużo szukania, po drugie trochę szukałem i nic nie znalazłem - w takich momentach zazwyczaj przeszukuje init.d i probuje wykombinować jak to działa - ale jak już pisałem w init.d też pusto. Być może słabo szukałem, ale jak czegoś nie mogę znaleźć w ciągu 3 godzin to pytam na forum ... więc być może pytam na złym forum ;)

Chodzi mi tylko o to czy jak usunę przy starcie w ciemno wszystkie PIDy - to nie popsuje tychże usług - np. nie będą wstawać, nie będą logować czego trzeba, nie będą robiły recovery po własnej smierci etc....

Gdyby chodziło o kilka usług to bym sobie sprawdził - ale tego jest dużo: kilka serwerów http (apache + lighttpd), 2 exim, qmail, zope'y, svn, bazy danych i jeszcze kilka - nie widzi mi się modyfikacja każdej z osobna i sprawdzania - ... a z drugiej strony mamy opory przed użyciem "rm /var/run/*" przy każdym starcie. Dlatego, szukam czegoś, gdzie jasno napisane, że w /var/run mają być tylko pliki PIDów które można sobie kasować przy staracie - a aplikacje które się do tego nie stosują są ble i niech martwią się same.

Pamiętaj jest serwer produkcyjny - a to jest zmiana ogólno-systemowa - nie mogę o tak sobie testować i sprawdzać co się np. stanie z bazami danych jak np. nie będzie miała po kill'u swojego starego pida i czy np. zrobi recovery czy też nie (tu tak sobie fantazjuje :P)

btw. problem jest jeszcze taki, niektóre usługi w niektórych chroot'ach wstają jak należy (bo np. korzystają z deamon tools albo inaczej obsługują pidy) - nie wiem

benyo

  • Gość
Nieaktualne pliki PID - jak kasować po crash'u ?
« Odpowiedź #5 dnia: 2008-02-26, 15:34:23 »
Poczytaj wiec wiecej o powloce o procesach i o PIDach czyli identyfikatorach procesoru. Przy uruchamianiu kazdy proces (rowniez uslugi) otrzymuje nowy pid wiec nie ma problemu z kasowaniem starych i nie uzywanych.

Przy prawidlowym zamknieciu systemu zabijane sa wszystkie procesy a na koncu glowny proces init o PID = 1.

Zatem po przypadkowym wylaczeniu komputera np. w skutek awarii wszystkie procesy gina i nie sa do nich przypisane juz zadne PIDY, ponowny rozruch i tak powoduje przypisane nowego pida do nowego procesu. TO samo dotyczy restartu dowolnej uslugi.

I jeszcze jedno czyszczenie pidow musi sie odbyc zanim zaczniesz uruchamiac jakiekolwiek uslugi. a z /var/run usuwasz tylko pidy a nie wszystkie pliki i katalogi.
To tyle ode mnie. Pozdrawiam