Potrzebujesz skryptu wykonywanego przy każdym ponownym uruchomieniu w +1 minucie. Umieściłem rekord, @reboot
ale jest za wcześnie na mój skrypt. Jak wykonać go jakiś czas po ponownym uruchomieniu?
Potrzebujesz skryptu wykonywanego przy każdym ponownym uruchomieniu w +1 minucie. Umieściłem rekord, @reboot
ale jest za wcześnie na mój skrypt. Jak wykonać go jakiś czas po ponownym uruchomieniu?
Odpowiedzi:
Czy skrypt ma być uruchamiany tylko minutę po uruchomieniu, czy może być używany także w innych momentach? W pierwszym przypadku możesz dodać sleep 60
na początku skryptu, lub w drugim przypadku dodać go do pliku crontab:
@reboot sleep 60 && my_script.sh
Jak jednak wskazał sr_, być może zajmujesz się tym w niewłaściwy sposób, a odpowiedni skrypt init.d lub rc.d byłby bardziej niezawodnym rozwiązaniem.
script -s X
Co przełoży się na sleep X
wnętrze skryptu).
taskrunner
, ani, w tym przypadku,/etc/init.d
Jeśli potrzebujesz wykonać coś po ponownym uruchomieniu, kiedy sieć stanie się dostępna, możesz na przykład napisać jednostkę systemową, która zostanie wykonana w wymaganym czasie (oczywiście będzie to działać tylko w systemach z systememd).
W tym celu utwórz plik /etc/systemd/system/my_script.service
o następującej treści:
[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
Następnie wykonaj:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Jesteś skończony!
Chciałbym użyć at
. Jak w:
@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.
... z dodanym wspomnianym zastrzeżeniem, że jeśli naprawdę chcesz uruchomić to po wszystkich innych rzeczach, powinieneś sprawdzić, jak to zrobić w init, którego używa twój system operacyjny.