Wie beendet man einen Prozess, der execv aufruft?

395
tarabyte

Ein Prozess, der aufruft, execvstirbt nicht durch Design, wie es aussieht.

Beispiel von hier geliehen :

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

Wenn ich diese ausführbare Datei anrufe foo, wie kann ich foo nach dem Start töten? Meine einzige Option scheint die übergeordnete Prozess-ID zu erfassen und diese dann abzubrechen.

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

Ich habe jedoch keine Möglichkeit, die PID des übergeordneten Prozesses zu erfassen.

1
Warum können Sie den Prozess nicht mit seiner PID beenden? David Schwartz vor 8 Jahren 0
Haben Sie "kill -9" mit der Prozess-PID ausprobiert? BillP3rd vor 8 Jahren 0

0 Antworten auf die Frage