Wenn und wie ist es möglich, Terminaleine Anwendung für 30 Sekunden zum Ausführen zu bringen, bevor sie zwangsweise geschlossen wird, und die Protokolle dieses Prozesses zu wiederholen?
Wenn und wie ist es möglich, Terminaleine Anwendung für 30 Sekunden zum Ausführen zu bringen, bevor sie zwangsweise geschlossen wird, und die Protokolle dieses Prozesses zu wiederholen?
Antworten:
Möglicherweise möchten Sie den Befehl timeout verwenden .
timeout -k 10s 30s command
Dadurch wird der Befehl 30 Sekunden lang ausgeführt und nach 10 Sekunden beendet, wenn er noch ausgeführt wird. - Weitere Optionen finden Sie auf der Manpage.
watchscheint mir ein sehr interessanter Befehl. Könnte sich als nützlich erweisen ...
Es gibt zwei Möglichkeiten (aber der timeoutBefehl von mcantsin vorgeschlagen ist wahrscheinlich besser):
Starten Sie den Befehl im Hintergrund, damit seine PID gespeichert wird $!und Sie ihn nach der angegebenen Zeit beenden können:
command &
sleep 30 && kill $!Starten Sie den Befehl und verwenden Sie pkilloder killall, um ihn zu beenden. ACHTUNG: Dies setzt voraus, dass nur ein Befehl mit diesem Namen ausgeführt wird. Ich verwende firefoxals Beispiel:
firefox &
sleep 30 && pkill firefoxIch habe keine Ahnung, was Sie mit "den Protokollen dieses Prozesses" meinen, aber der Standardfehler eines Prozesses kann mit in einer Datei gespeichert werden command 2> logfile.txt.