Wie führt man einen Befehl immer im Hintergrund aus?

Wie führt man einen Befehl immer im Hintergrund aus?

Wenn ich den folgenden Befehl vom Terminal aus ausführe, wird die Ausgabe weiterhin in message.log veröffentlicht.

cf logs broker-analytics > /var/www/cfbrokerlogs/message.log

Wenn ich jedoch mein Terminal schließe, funktioniert es nicht mehr. Wie kann ich dafür sorgen, dass es die ganze Zeit im Hintergrund läuft? Und wenn die Ausführung aus irgendeinem Grund gestoppt wird, was wäre ein guter Ansatz, um dies zu überprüfen und sicherzustellen, dass es immer läuft?

Der Befehl druckt einfach das Protokoll, wenn ein Eintrag vorgenommen wird.

Ich bin auf einem Ubuntu-Server 14.04.

Antwort1

Sie können es nohupin Kombination mit Folgendem verwenden &:

nohup cf logs broker-analytics > /var/www/cfbrokerlogs/message.log &

Der nohupBefehl bewirkt, dass das Programm Hangup-Signale (also solche, die beim Schließen des Terminals gesendet werden) ignoriert., und &natürlich läuft es im Hintergrund.

Wenn Sie sicherstellen möchten, dass es noch ausgeführt wird, oder es beenden möchten, können Sie Folgendes verwenden ps:

ps ax | grep cf logs broker-analytics

Anschließend sollte Dir die Prozess-ID angezeigt werden, was Du killbei Bedarf auch tun kannst.

verwandte Informationen