Нужен скрипт, выполняемый при каждой перезагрузке за +1 минуту. Я разместил запись, @reboot
но это слишком рано для моего сценария. Как выполнить это когда-нибудь после перезагрузки?
Нужен скрипт, выполняемый при каждой перезагрузке за +1 минуту. Я разместил запись, @reboot
но это слишком рано для моего сценария. Как выполнить это когда-нибудь после перезагрузки?
Ответы:
Сценарий предназначен для запуска только через одну минуту после загрузки или может использоваться в другое время? В первом случае вы можете добавить sleep 60
в начало вашего скрипта, или во втором случае добавить его в файл crontab:
@reboot sleep 60 && my_script.sh
Как уже указывалось sr_, возможно, вы решаете эту проблему неправильно, и правильный сценарий init.d или rc.d был бы более надежным решением.
script -s X
которая будет переводиться sleep X
внутрь скрипта).
taskrunner
, и, в этом отношении,/etc/init.d
Например, если вам нужно выполнить что-то после перезагрузки, когда сеть станет доступной, вы можете написать системный модуль, который будет выполняться в нужное время (конечно, это будет работать только в системах с systemd).
Для этого создайте файл /etc/systemd/system/my_script.service
со следующим содержимым:
[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
Затем выполните:
sudo systemctl daemon-reload
sudo systemctl enable my_script
Вы сделали!
Я бы использовал at
. Как в:
@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.
... с добавленной оговоркой, что если вы действительно хотите запустить его после всех остальных вещей, вы должны проверить, как это сделать в init, который использует ваша ОС.