Immer die PID von popen

Ich habe ein Programm, das mit popen() um Sie zu öffnen und Lesen Sie die Ausgabe aus einer shell-Befehl. Das problem ist, soweit ich das beurteilen kann, gibt es keinen einfachen Weg, um die PID des Laufenden Prozesses, und daher können Sie nicht töten, wenn es klemmt. Die Frage ist also, wie können Sie abrufen, die PID von einem Prozess geöffnet mit popen?

  • Sind Sie wollen die PID des /bin/sh Prozess, wird hervorgebracht, oder einer der eventuell mehreren anderen Prozessen, die erzeugt werden als Ergebnis von was auch immer Befehlszeile übergeben wird, um /bin/sh? Im Allgemeinen Fall, es ist nicht unbedingt nur ein PID hier, das ist wahrscheinlich zumindest ein Teil der Grund ist es nicht ohne weiteres verfügbar...
  • Ja, /bin/sh sollte ausreichen - ich wollte nur etwas-nichts -, die mir erlauben würde, zu töten Prozesse wie iperf-server-Modus.
  • warum nutzen Sie nicht system("killall -9 iperf")? und was ist der Nachteil bei diesem? Grüße, ugesh
  • killall -9 iperf würde alle töten iperf-Prozesse system-weit, auch wenn es nichts zu tun hat mit meinem speziellen Anwendung. Plus, es ist nicht nur iperf, die ich brauche, um zu töten, sondern auch Befehle wie ping oder curl.
InformationsquelleAutor Gillespie | 2014-11-10
Schreibe einen Kommentar