Ich habe einen Job, der für immer läuft, sobald er anfängt. Ich möchte es also nur einmal starten, nachdem ich es in die "crontab -e" -Datei eingegeben und bei jedem Neustart gespeichert habe (oder).
Wie kann man das erreichen?
Wenn Sie einen Befehl ausführen möchten einmal zu einem späteren Zeitpunkt, verwenden Sie den at
Befehl.
Wenn Sie möchten, dass ein Befehl beim Systemstart einmal ausgeführt wird, verwenden Sie entweder:
@reboot
speziellen Präfix (siehe Manpage)Letzteres ist die einzige Option für einen Benutzer ohne Rootberechtigung.
at now
@reboot
.Sie können at (1) verwenden, um einen Auftrag zu einem späteren Zeitpunkt auszuführen. Wenn Sie jedoch etwas beim Booten ausführen möchten und es weiterhin von selbst ausgeführt wird, möchten Sie möglicherweise einen Eintrag in /etc/init.d/ dafür? Dann können Sie es beim Booten starten.
quelle
kill
(vorausgesetzt, Sie haben die entsprechenden Berechtigungen, die Sie für Ihre eigenen Prozesse ausführen). Das Erstellen eines Init-Skripts ist wirklich einfach. Suchen Sie/etc/init.d/
nach einem Skript, das nicht sehr lang ist, und orientieren Sie sich daran, oder suchen Sie bei Google nachmaking init scripts (your distribution)
./etc/init.d/skeleton
unter openSuSE), das Sie für Ihre Verwendung anpassen können.Ein Job, der nur einmal ausgeführt wird und für immer ausgeführt wird, bis Sie ihn zum Sterben bringen, wird als "Daemon" bezeichnet. Sie werden normalerweise über Init-Skripte in /etc/init.d/ gestartet.
Wenn Ihr Job irgendwann endet und als einmaliger Job angesehen werden kann, sollten Sie sich den Befehl at ansehen. Wenn ich zum Beispiel heute Abend um 22 Uhr den Befehl find ausführen wollte und dies nur einmal tun würde:
quelle
Schauen Sie sich den Befehl at an
quelle