Um processo que chama execv
nã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
—
BillP3rd
kill -9
com o processo PID?