[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: processi e /proc e confusione



On 16/03/2014 19:42, Alessandro Baggi wrote:
> [...]
>
> Mio programma A legge il file.pid e dice che dentro ci sta il pid 1555.
> Il mio programma con la chiamata access() dice che la dir "pid" esiste
> e non avvia il programma B.
> Se do un "ps aux | grep 1555" oppure un "ls /proc | grep 1555" non
> ottengo nessun risultato. Questo dovrebbe indicare (almeno in buona
> parte) che un processo non è attivo.
>
> ma un comando come:
>
>     cat /proc/1555/cmdline
>     kill 1555
>
> che vanno a buon fine su un processo che non è listato mi suona molto
> strano.

[...]

> L'unica cosa che al momento mi viene in mente (ipotesi irreale) è che
> amarok (e gli altri programmi individuati) ha dei thread e che il
> kernel gestisca i thread come dei processi (creando quindi la
> struttura del processo) ma non li rende visibili su /proc in modo tale
> che le altre utility come ps o top non possano rilevarli come
> processi. L'utente non vedendoli non puo considerarli e va ad
> effettuare il kill direttamente sul processo non andando a toccare il
> thread (magari la politica è: il kill deve essere effettuato sul
> processo e non sul thread). Questo non vuol dire che non sia possibile
> effettuare il kill su quel pid.
>

Prova con

ps maxo user,pid,tid,stat,command

per avere sia i processi che i thread.

Poi, se uccidi un thread probabilmente inneschi una scalata alla
liberazione di risorse che comporta la morte del padre e dei fratelli.

In fine, in /proc c'è la lista dei processi ed è pure il posto più
indicato a "contenere" i riferimenti ai thread ma non è necessario siano
direttamente visibili via `ls`.

Resta ancora da vedere come mai il tuo programma è un thread.


Ciao

-- 
Alessandro T.

R: Perché leggiamo dall'alto al basso e da sinistra a destra.
D: Perché dovrei iniziare la risposta all'e-mail dopo il testo citato? 


Reply to: