Потрібен сценарій, виконаний при кожному перезавантаженні за +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.
... з доданим згаданим застереженням, що якщо ви дійсно хочете, це запустити його після всіх інших речей, ви повинні перевірити, як це зробити в ініціаті, який використовує ваша ОС.