Come Sapere se un processo è attivo ?

di il
1 risposte

Come Sapere se un processo è attivo ?

Salve a tutti,
Sto realizzando un programma c che in base ad un processo se attivo o meno effettui diverse operazioni. Ho provato eseguendo questo codice :
char* find_a = "ps ax | grep -w nomeProcessoA | grep -v grep > /dev/null";
	char* find_b = "ps ax | grep -w nomeProcessoB | grep -v grep >/dev/null";
	if (system(find_a) == 0)
		impl = A;
	else if (system(find_b) == 0)
		impl = B;
Ma nonostante il processo A non sia presente in ogni caso l'esecuzione del comando shell ritorna 0 è quindi mi ritrovo con impl = A;
Che comando shell dovrei usare per vedere se effettivamente un processo è attivo ?

1 Risposte

  • Re: Come Sapere se un processo è attivo ?

    A me non risulta proprio!
    
    max@studio:~> ps ax | grep -w xxx | grep -v grep
    max@studio:~> echo $?
    1
    max@studio:~> ps ax | grep -w init | grep -v grep > /dev/null
    max@studio:~> echo $?
    0
    
    
    #include <stdlib.h>
    #include <stdio.h>
    
    int main ()
    {
        int ret[2];
    
        ret[0]=system("ps ax | grep -w init | grep -v grep > /dev/null");
        ret[1]=system("ps ax | grep -w xxxxxxx | grep -v grep > /dev/null");
    
        printf ("ret[0]=%d\nret[1]=%d\n",ret[0],ret[1]);
        return 0;
    }
    
    
    max@studio:~> ./a.out 
    ret[0]=0
    ret[1]=256
    max@studio:~> 
    
Devi accedere o registrarti per scrivere nel forum
1 risposte