Thread View: pl.comp.os.linux.programowanie
7 messages
7 total messages
Started by laser
Wed, 21 Sep 2011 07:51
Cos co znika z procesem(?)
Author: laser
Date: Wed, 21 Sep 2011 07:51
Date: Wed, 21 Sep 2011 07:51
21 lines
1547 bytes
1547 bytes
Witam, Mam prblem ze sprawdzeniem czy uruchomiony proces istnieje. Standardowo w Unix-ach uzywa sie do tego plikow 'pid' do ktorego uruchomiony proces zapisuje jego PID. Potem sprawdza sie czy istnieje proces o tym nr PID. Problem w tym, ze proces mogł się skończyć, plik nie został skasowany, licznik procesow się przekrecił i PID jest wykorzystany, ale już przez zupełnie inny proces (który na dodatek można przez pomyłkę ubić). Tak wiec potrzeba wykorzystać coś co ma nazwę na którą można się powołać i autmatycznie znika razem z procesem. Myślałem o przeglądaniu /proc/pid/cmdline. Razem z procesem (mogą zniknąć) znikają tez zamknięte / semafory i blokady na plikach. Ale może jest coś lepszego/łatwiejszego w użyciu? -- ml http://www.archimedes.eu.org/
Re: Cos co znika z procesem(?)
Author: Mariusz Kruk
Date: Wed, 21 Sep 2011 08:17
Date: Wed, 21 Sep 2011 08:17
34 lines
2240 bytes
2240 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" >Witam, > >Mam prblem ze sprawdzeniem czy uruchomiony proces istnieje. Standardowo w >Unix-ach uzywa sie do tego plikow 'pid' do ktorego uruchomiony proces >zapisuje jego PID. Potem sprawdza sie czy istnieje proces o tym nr PID. > >Problem w tym, ze proces mogł się skończyć, plik nie został skasowany, To dość standardowo skrypty startowe obsługują. Najwyżej dostaniesz informację w stylu "PID file exists but process is dead". >licznik procesow się przekrecił i PID jest wykorzystany, ale już przez >zupełnie inny proces (który na dodatek można przez pomyłkę ubić). "Taki sam" proces? Dość małe prawdopodobieństwo. (aczkolwiek owszem, możliwe) >Tak wiec potrzeba wykorzystać coś co ma nazwę na którą można się powołać i >autmatycznie znika razem z procesem. Myślałem o przeglądaniu >/proc/pid/cmdline. Razem z procesem (mogą zniknąć) znikają tez zamknięte >/ semafory i blokady na plikach. Ale może jest coś lepszego/łatwiejszego w >użyciu? Pomysły na szybko (może nie zawsze najmądrzejsze, ale mające szansę działać): Tworzysz w procesie rurkę nazwaną i do niej piszesz PID na żądanie. Zmieniasz nazwę procesu na zawierającą unikalny ciąg znaków. -- \------------------------/ | Kruk@epsilon.eu.org | http://www.nieruchomosci.pl/mieszkanie,14137471 | http://epsilon.eu.org/ | /------------------------\
Re: Cos co znika z procesem(?)
Author: laser
Date: Wed, 21 Sep 2011 14:26
Date: Wed, 21 Sep 2011 14:26
26 lines
1663 bytes
1663 bytes
Dnia 21.09.2011 Mariusz Kruk <Mariusz.Kruk@epsilon.eu.org> napisał/a: > epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" > (...) >>licznik procesow się przekrecił i PID jest wykorzystany, ale już przez >>zupełnie inny proces (który na dodatek można przez pomyłkę ubić). > > "Taki sam" proces? Dość małe prawdopodobieństwo. (aczkolwiek owszem, > możliwe) Nie musi być taki sam - jakikolwiek. > Pomysły na szybko (może nie zawsze najmądrzejsze, ale mające szansę > działać): > Tworzysz w procesie rurkę nazwaną i do niej piszesz PID na żądanie. > Zmieniasz nazwę procesu na zawierającą unikalny ciąg znaków. Przyznam się - nie rozumie. Ani o co chodzi z tą rurką, ani o tą nazwe procesu. Można prosićo wyjaśnienie? -- ml http://www.archimedes.eu.org/
Re: Cos co znika z procesem(?)
Author: Mariusz Kruk
Date: Thu, 22 Sep 2011 06:58
Date: Thu, 22 Sep 2011 06:58
32 lines
1799 bytes
1799 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" >>>licznik procesow się przekrecił i PID jest wykorzystany, ale już przez >>>zupełnie inny proces (który na dodatek można przez pomyłkę ubić). >> "Taki sam" proces? Dość małe prawdopodobieństwo. (aczkolwiek owszem, >> możliwe) >Nie musi być taki sam - jakikolwiek. To wystarczy sprawdzić czy z tego samego obrazu uruchomiony. >> Pomysły na szybko (może nie zawsze najmądrzejsze, ale mające szansę >> działać): >> Tworzysz w procesie rurkę nazwaną i do niej piszesz PID na żądanie. >> Zmieniasz nazwę procesu na zawierającą unikalny ciąg znaków. >Przyznam się - nie rozumie. Kto? >Ani o co chodzi z tą rurką, man 3 mkfifo >ani o tą nazwe >procesu. setproctitle, prctl -- \------------------------/ | Kruk@epsilon.eu.org | http://www.nieruchomosci.pl/mieszkanie,14137471 | http://epsilon.eu.org/ | /------------------------\
Re: Cos co znika z procesem(?)
Author: laser
Date: Thu, 22 Sep 2011 07:22
Date: Thu, 22 Sep 2011 07:22
29 lines
1659 bytes
1659 bytes
Dnia 22.09.2011 Mariusz Kruk <Mariusz.Kruk@epsilon.eu.org> napisał/a: > epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" > (...) > To wystarczy sprawdzić czy z tego samego obrazu uruchomiony. O, jest to pomysł. >>> Tworzysz w procesie rurkę nazwaną i do niej piszesz PID na żądanie. >>> Zmieniasz nazwę procesu na zawierającą unikalny ciąg znaków. >>Przyznam się - nie rozumie. > Kto? ja >>Ani o co chodzi z tą rurką, > man 3 mkfifo No nie... to akurat wiem. Tylko nie ruzmię jak to można wykorzystać rurki do identyfikacji prococesu (uruchomionego lub nie). >>ani o tą nazwe >>procesu. > setproctitle, prctl Chodzi o coś bardziej uniwersalnego. -- ml http://www.archimedes.eu.org/
Re: Cos co znika z procesem(?)
Author: Mariusz Kruk
Date: Thu, 22 Sep 2011 07:40
Date: Thu, 22 Sep 2011 07:40
28 lines
1981 bytes
1981 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" >>>> Tworzysz w procesie rurkę nazwaną i do niej piszesz PID na żądanie. >>>> Zmieniasz nazwę procesu na zawierającą unikalny ciąg znaków. >>>Przyznam się - nie rozumie. >> Kto? >ja Użyłeś złej formy w takim razie. Prawidłowa jest "rozumiem" >>>Ani o co chodzi z tą rurką, >> man 3 mkfifo >No nie... to akurat wiem. Tylko nie ruzmię jak to można wykorzystać rurki do >identyfikacji prococesu (uruchomionego lub nie). Pomysł wygląda tak (nie testowałem w praktyce, ale nie widzę dlaczego miałoby się nie dać): Zrobić w procesie rurkę i kazać na aio wisieć procesowi z zapisem jakiegoś unikalnego ciągu do niej. Wtedy możesz z zewnątrz sprawdzić czy to, co dostajesz z rurki jest tym, czego się spodziewasz. Zamiast rurki możesz oczywiście do tego użyć np. gniazd. -- \------------------------/ | Kruk@epsilon.eu.org | http://www.nieruchomosci.pl/mieszkanie,14137471 | http://epsilon.eu.org/ | /------------------------\
Re: Cos co znika z procesem(?)
Author: Edward Tomasz Napierala
Date: Wed, 11 Jan 2012 13:32
Date: Wed, 11 Jan 2012 13:32
19 lines
1793 bytes
1793 bytes
laser@laser.lon wrote: > Mam prblem ze sprawdzeniem czy uruchomiony proces istnieje. Standardowo w > Unix-ach uzywa sie do tego plikow 'pid' do ktorego uruchomiony proces > zapisuje jego PID. Potem sprawdza sie czy istnieje proces o tym nr PID. > > Problem w tym, ze proces mogł się skończyć, plik nie został skasowany, > licznik procesow się przekrecił i PID jest wykorzystany, ale już przez > zupełnie inny proces (który na dodatek można przez pomyłkę ubić). > > Tak wiec potrzeba wykorzystać coś co ma nazwę na którą można się powołać i > autmatycznie znika razem z procesem. Myślałem o przeglądaniu > /proc/pid/cmdline. Razem z procesem (mogą zniknąć) znikają tez zamknięte > / semafory i blokady na plikach. Ale może jest coś lepszego/łatwiejszego w > użyciu? Tak, lockf(3)/flock(3). W sensie, trzymaj pidfile'a zalockowanego. -- If you cut off my head, what would I say? Me and my head, or me and my body?
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads