Como matar um processo que chama execv?


1

Um processo que chama execvnão está morrendo, pelo que parece, design.

Exemplo emprestado daqui :

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>

main() {
   pid_t pid;
   char *const parmList[] = {"/bin/ls", "-l", "/u/userid/dirname", NULL};

   if ((pid = fork()) == -1)
      perror("fork error");
   else if (pid == 0) {
      execv("/bin/ls", parmList);
      printf("Return not expected. Must be an execv error.n");
   }
}

Se eu chamo isso de executável foo, como posso matar foo depois que ele começa? Minha única opção parece capturar o ID do processo pai e depois matá-lo.

foo &
echo $! > /path/to/foo_pid
kill /path/to/foo_pid

Mas não tenho como capturar o PID do processo pai.


Por que você não pode matar o processo usando seu PID?
David Schwartz

Você já tentou kill -9com o processo PID?
BillP3rd
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.