Ich möchte jeden Befehl kennen, den ich ausführen kann, um die Endzeit eines Prozesses zu erfahren.
Ich habe den Prozess bereits gestartet und kenne seine PID, möchte aber wissen, ob es einen Befehl gibt, der mir sagt, wann er beendet wurde.
Danke für Ihre Hilfe.
command-line
process
user2504890
quelle
quelle
at
(siehe die Manpage:)man at
. Dadurch wird es als Job in die Warteschlange gestellt, und Sie werden benachrichtigt, wenn es fertig ist usw. Es ist sehr einfach, Cron-ähnlich, aber für einzelne Jobs.Antworten:
Führen Sie Folgendes aus:
Oder Sie können ein Bash-Skript erstellen.
wait-for-death.sh
:Dann gib ihm die Ausführungserlaubnis:
und führen Sie es aus, indem Sie den Prozess 'PID:
quelle
while kill -0 <pid>; do ...
ist portabler - es funktioniert auch auf Nicht-Linux-Systemen. Und es gibt keinen Grund, Bash zu verwenden - Ihr Code verwendet keine Bashismen und ist daher/bin/sh
in Ordnung.kill -0
, ich finde es eine elegantere Lösung.Wenn Sie PID-Kollisionen vermeiden möchten, können Sie Folgendes verwenden
at
:quelle
Vielleicht
time
passt der Befehl zu Ihrem Bedarf:Beispiel:
Sobald der Vorgang abgeschlossen ist,
time
werden einige Statistiken angezeigt, beispielsweise die Zeit, die für den Abschluss des Vorgangs benötigt wurde (in Sekunden, glaube ich).Überprüfen Sie die Manpage oder werfen Sie einen Blick auf diese Online- Manpage .
quelle
time
ist also keine Option.