🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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(?)
#72336
Author: laser
Date: Wed, 21 Sep 2011 07:51
21 lines
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(?)
#72337
Author: Mariusz Kruk
Date: Wed, 21 Sep 2011 08:17
34 lines
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(?)
#72338
Author: laser
Date: Wed, 21 Sep 2011 14:26
26 lines
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(?)
#72339
Author: Mariusz Kruk
Date: Thu, 22 Sep 2011 06:58
32 lines
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(?)
#72340
Author: laser
Date: Thu, 22 Sep 2011 07:22
29 lines
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(?)
#72341
Author: Mariusz Kruk
Date: Thu, 22 Sep 2011 07:40
28 lines
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(?)
#72342
Author: Edward Tomasz Napierala
Date: Wed, 11 Jan 2012 13:32
19 lines
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