Автозагрузка скриптов Ubuntu 18.04/20.04 через systemd
У всех была задача когда при запуске нужно запустить некий скрипт, например: монтирование дисков, настройка правил firewall или запуск определенных сервисов в определенный момент. /etc/rc.local – устаревший метод и не всегда работает, поэтому сделаем это через systemd.
Итак, требуется добавить некий скрипт в автозагрузку. Пусть он лежит в /etc/script.sh. Делать его исполняемым необязательно.
Чтобы добавить скрипт в автозагрузку, нужно создать файл сервиса systemd. Для этого создаем файл сервиса с таким содержимом:
nano /etc/systemd/system/autostartscript.service
[Unit]
Description=This script runs at system startup
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/bash /etc/script.sh
[Install]
WantedBy=multi-user.target
Имя файла можно выбрать произвольное, оно будет являться именем сервиса. Пройдемся по некоторым опциям:
- Description – произвольное описание сервиса, будет видно при выводе через service status.
- After – условие, после которого стартует наш скрипт. В данном случае после запуска сети.
- Type – тип сервиса, обозначающий, что требуется одноразовый запуск и все. Контроль процесса выполнения отключен.
- ExecStart – непосредственно путь выполняемого файла (bash, т.к. скрипт на bash’e) и путь до нашего скрипта.
- WantedBy – требования для запуска, в данном случае это отключает запуск в single-user (он же режим восстановления).
Далее нужно обновить список сервисов в системе и включить сервис с использованием имени:
systemctl daemon-reload
systemctl enable autostartscript
Готово. Теперь можно проверять. Скрипт будет запускаться один раз после запуска сети при обычной загрузке системы в многопользовательском режиме.
* Предполагается, что вы работаете под root’ом. При работе от имени root’а приглашение ввода заканчивается символом #. Если это не так, то перейдите в консоль от рута командой sudo -i и введя пароль пользователя.
Автозагрузка скриптов Ubuntu 18.04/20.04 через systemd: 3 комментария
Thanks in favor of sharing such a pleasant opinion, piece
What’s Happening i am new to this, I stumbled upon this I’ve discovered It absolutely useful and it has helped me out loads.
I was curious if you ever thought of changing the structure of your site?