Wie kann ich einen Prozess beenden, der execv aufruft?

1

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

Beispiel von hier ausgeliehen :

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

fooWie kann ich foo töten, wenn ich die ausführbare Datei nenne, nachdem sie gestartet wurde? Meine einzige Option scheint die übergeordnete Prozess-ID zu erfassen und diese dann zu beenden.

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

Aber ich habe keine Möglichkeit, die PID des übergeordneten Prozesses zu erfassen.

Tarabyte
quelle
Warum können Sie den Prozess nicht mit seiner PID beenden?
David Schwartz
Haben Sie es kill -9mit der Prozess-PID versucht ?
BillP3rd