Как убить процесс, который вызывает execv?

353
tarabyte

Процесс, который вызывает execv, не умирает из-за того, что выглядит как дизайн.

Пример заимствован отсюда :

#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"); } } 

Если я назову этот исполняемый файл foo, как я могу убить foo после его запуска? Кажется, мой единственный вариант - захватить идентификатор родительского процесса, а затем убить его.

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

Но у меня нет способа получить PID родительского процесса.

1
Почему вы не можете убить процесс, используя его PID? David Schwartz 8 лет назад 0
Вы пробовали `kill -9` с помощью PID процесса? BillP3rd 8 лет назад 0

0 ответов на вопрос

Похожие вопросы