Wie könnte ich ein Bash-Skript schreiben, das ein lang laufendes Programm ausführt und die Prozess-ID des Programms in einer separaten Datei speichert?
Ich möchte so etwas wie
#!/bin/bash
exec long_running_tool
echo `ps af |grep "long_running_tool" |awk '$5 == "long_running_tool" {print $1}'` > pid_file
Wenn Sie dies jedoch genau tun, wird das ps
After- Tool ausgeführt .
Gibt es eine Möglichkeit, die Prozess-ID des erstellten Prozesses abzurufen?
long_running_tool
Prozess ersetzt wird. Folglich kehrt exec niemals zurück und die folgende Zeile wird niemals erreicht. Siehehelp exec
,execve(2)
.