Ich möchte die Zeit begrenzen, die ein grep
Prozessbefehl ausführen oder am Leben sein darf.
Zum Beispiel. Ich möchte Folgendes ausführen:
grep -qsRw -m1 "parameter" /var
Bevor grep
ich den Befehl ausführe, möchte ich die Lebensdauer des grep
Prozesses begrenzen , beispielsweise nicht länger als 30 Sekunden.
Wie mache ich das?
Und wenn ja, wie kann ich zurückkehren oder zurücksetzen, um danach keine zeitliche Begrenzung zu haben?
timeout
und sogar Anweisungen zur Installation erhalten. Es ist unhöflich, diese Antwort zu ignorieren und dann Ihre Frage zu duplizieren.Antworten:
Sie können timelimit verwenden , es ist im Standard-Ubuntu verfügbar oder Sie können es selbst kompilieren.
timelimit führt einen Befehl aus und beendet den erzeugten Prozess nach einer bestimmten Zeit mit einem bestimmten Signal. Zuerst wird ein "Warnsignal" gesendet, dann nach einer Zeitüberschreitung ein "Kill" -Signal, ähnlich wie init (8) beim Herunterfahren arbeitet.
quelle
sudo aptitude install timelimit
. Funktioniert hervorragend nach der Installation.Hier ist ein leicht hackiger Schlag dafür:
Grundsätzlich wird die Suche im Hintergrund gestartet, dann wird eine Unterschale gestartet, die 30 Sekunden wartet und dann den Suchvorgang abbricht. Wenn die Suche <30 Sekunden dauert, ist der Prozess bereits beendet. Es ist keine gute Idee, einen Prozess zu beenden, der bereits tot ist, da die Wahrscheinlichkeit sehr gering ist, dass etwas anderes die PID wiederverwendet, aber für so etwas ist es im Allgemeinen in Ordnung. Zuletzt wird die Suche wieder in den Vordergrund gestellt und so lange ausgeführt, bis sie beendet ist oder beendet wird.
quelle
Erstellen Sie eine neue Datei mit dem Namen "tgrep" und fügen Sie Folgendes ein (oder nennen Sie sie wie Sie möchten):
Als nächstes laufen
chmod a+x tgrep
. Wenn Sie es jetzt verwenden möchten, können Sie eingebenOder Sie können es einfach als tgrep verwenden (ohne das ./ und können es aus einem beliebigen Verzeichnis verwenden), wenn Sie es in einem Verzeichnis ablegen, das in Ihrer $ PATH-Variablen enthalten ist (wie / home / dan / bin /, falls dies der Fall ist) Ihre $ PATH-Variable, andernfalls können Sie sie hinzufügen).
quelle