PDA

View Full Version : [C] Controllare se un processo (non parente) e' ancora in esecuzione..


vv1984
18-01-2008, 10:14
Ciao a tutti, sono un po' disorientato. Ho un esercizio
in cui mi si chiede di controllare che un processo (passato come
parametro) e' ancora in esecuzione.
Il problema e' che il controllante e il controllato non devono esser "parenti"

Ho spulciato ovunque su internet, ma non c'e' apparentemente nessun
modo di controllare lo stato di un processo se questi non e' un child rispetto
al controllante...

Spero in un piccolo aiuto,
grazie mille,
Blob

andbin
18-01-2008, 10:27
Ho un esercizio
in cui mi si chiede di controllare che un processo (passato come
parametro) e' ancora in esecuzione.
Il problema e' che il controllante e il controllato non devono esser "parenti"Dovresti specificare il sistema operativo, visto che operazioni del genere (e in generale) sui processi sono system-dependent.

vv1984
18-01-2008, 11:42
Dovresti specificare il sistema operativo, visto che operazioni del genere (e in generale) sui processi sono system-dependent.

Scusa, in effetti non ci avevo pensato.
Il sistema operativo e' Unix.

71104
18-01-2008, 12:43
Scusa, in effetti non ci avevo pensato.
Il sistema operativo e' Unix. ecco perché non c'è modo :asd:
su Windows avendo i permessi necessari si può :Prrr:

vediamo di eludere la limitazione imposta dall'esercizio: i due processi possono avere un padre comune? il padre comune può essere un programma scritto da te?

ilsensine
18-01-2008, 12:54
Scusa, in effetti non ci avevo pensato.
Il sistema operativo e' Unix.
kill(pid, 0)
Non invia alcun segnale, ma ritorna 0 se il processo è in esecuzione; errore (con errno=ESRCH) se il processo non esiste.
nb devi poter inviare segnali al processo (è ok se sei root o se i due processi sono dello stesso profilo utente). Se non hai i diritti, errno vale EPERM e puoi concludere che...il processo esiste :asd:

ecco perché non c'è modo :asd:
Come al solito sbagli.