Benötigen Sie ein Skript, das bei jedem Neustart in +1 Minute ausgeführt wird. Ich habe eine Aufzeichnung erstellt, @reboot
aber für mein Drehbuch ist es noch zu früh. Wie kann ich es nach dem Neustart ausführen?
Benötigen Sie ein Skript, das bei jedem Neustart in +1 Minute ausgeführt wird. Ich habe eine Aufzeichnung erstellt, @reboot
aber für mein Drehbuch ist es noch zu früh. Wie kann ich es nach dem Neustart ausführen?
Antworten:
Soll das Skript immer nur eine Minute nach dem Hochfahren ausgeführt werden, oder kann es auch zu anderen Zeiten verwendet werden? Im ersten Fall können Sie sleep 60
am Anfang Ihres Skripts oder im zweiten Fall in die crontab-Datei einfügen:
@reboot sleep 60 && my_script.sh
Wie von sr_ bereits erwähnt, wird dies möglicherweise falsch angegangen, und ein geeignetes init.d- oder rc.d-Skript wäre eine robustere Lösung.
script -s X
die sleep X
innerhalb des Skripts übersetzt werden würde ).
taskrunner
noch, was das betrifft,/etc/init.d
Wenn Sie nach dem Neustart etwas ausführen müssen, wenn das Netzwerk verfügbar wird, können Sie beispielsweise eine systemd-Einheit schreiben, die zur gewünschten Zeit ausgeführt wird (dies funktioniert natürlich nur auf Systemen mit systemd).
Erstellen Sie dazu eine Datei /etc/systemd/system/my_script.service
mit folgendem Inhalt:
[Unit]
Description=My script that requires network
After=network.target
[Service]
Type=oneshot
ExecStart=/full/path/to/my_script.sh
[Install]
WantedBy=multi-user.target
Dann führen Sie aus:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Sie sind fertig!
Ich würde verwenden at
. Wie in:
@reboot echo /root/bin/do_the_stuff | at now + 2 minutes
# at assigns it an execution time truncated to whole minutes,
# so this means it will execute in 1--2 minutes.
... mit der erwähnten Einschränkung, dass Sie, wenn Sie es wirklich nach allen anderen Dingen ausführen möchten, überprüfen sollten, wie dies in dem Init gemacht wird, das Ihr Betriebssystem verwendet.