Sagen wir, ich habe eine PID in der Hand, mypid=$$
Gibt es einen Bash / System-Befehl, mit dem ich auf das Beenden dieses Prozesses mit der angegebenen PID warten kann?
Wenn kein Prozess mit mypid existiert, sollte der Befehl einfach fehlschlagen.
bash
shell-script
process
proc
Alexander Mills
quelle
quelle
wait
in der Shell oder in derwait()
C-Bibliotheksfunktion verwendet werden. Es gibt keine Standardmethode für AFAIK, um auf einen nicht untergeordneten Prozess zu warten. Es ist weiterhin unklar, ob die C # -Funktion dies kann (dies hängt davon ab, was ein "assoziierter Prozess" ist).Antworten:
Ich habe aus dieser Antwort das bekommen, was ich brauchte: /programming//a/41613532/1223975
..turns out using
wait <pid>
funktioniert nur, wenn diese PID ein untergeordneter Prozess des aktuellen Prozesses ist .Folgendes funktioniert jedoch für jeden Prozess:
Warten, bis ein Vorgang abgeschlossen ist
Linux:
Darwin (erfordert, dass
$pid
offene Dateien hat):Mit Zeitüberschreitung (Sekunden)
Linux:
Darwin (erfordert, dass
$pid
offene Dateien hat):quelle
Sie können die eingebaute Bash verwenden
wait
:Es verwendet den Systemaufruf
waitpid()
..quelle
bash: wait: pid 47760 is not a child of this shell
... zurück zum Zeichenbrett lol