GeForkten Prozess beenden ?



  • Hallo alle beieinander,

    wie kann ich denn einen Prozess den ich so starte :

    switch(fork())
    {
        case 0:
            if(execlp("Die Anweisungen zum Start",NULL)==-1)
            {
              perror("execclp");
              return -1;
            }
        case -1:
            perror("fork");
            return -1;
            break;
    }
    

    wieder komplett beenden ??

    Danke fuer die Hilfe und

    bis denn
    Frank



  • Sorry hab wohl nicht richtig gegoogelt !

    Klappt mit

    #include "signal.h"
    
    kill(ProzessID, SIGTERM);
    

    🙂



  • So machst du das, wenn du ihn extern beenden willst.

    Ansonsten beendet der sich auch selbst, wenn er sein Scope verlässt oder du exit aufrufst.

    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    void child() {
      sleep(2);
      exit(10); //beendet child
    }
    
    void parent() {
      int status;
      wait(&status);
    }
    
    int main() {
      switch(fork()) {
      case -1:
        perror("fork");
        return 1;
        break;
      case 0:
        child();
        break;
      default:
        parent();
        break;
      }
      return 0;
    }
    
    > gcc prozess.c
    > ./a.out
    > echo $?
    0
    

Anmelden zum Antworten