Как запускать скрипты при загрузке в Linux с помощью Systemd
30 апреля 2022 г.Вступление
В этой статье мы настроим наш компьютер с Linux на автозапуск скрипта при загрузке. Для целей этой статьи мы будем использовать службы systemd
.
Кстати, я использую Arch Linux, поэтому, если есть какая-то разница при использовании другого дистрибутива, не стесняйтесь оставлять комментарии, пожалуйста.
Что такое системный?
systemd — это набор основных строительных блоков для системы Linux. Он предоставляет систему и диспетчер служб, который работает как PID и запускает остальную часть системы. systemd предоставляет агрессивные возможности распараллеливания, использует сокеты и активацию D-Bus для запуска служб, отслеживает процессы и т. д.
Вы можете прочитать больше о systemd [здесь] (https://wiki.archlinux.org/title/Autostarting).
Основная команда, используемая для интроспекции и управления systemd, называется systemctl.
Шаги
- Во-первых, мы создадим скрипт Bash в
/usr/local/sbin
, например,[notifyRemote.sh]
(http://notifyRemote.sh)
, который будет уведомлять удаленную машину после ее загрузки.
- Сделаем файл исполняемым, выполнив команду:
``` ударить
sudo chmod +x /usr/local/sbin/notifyRemote.sh
- Создайте файл модуля с именем
startup.service
в/etc/systemd/system/
, чтобы определить службу systemd. Вам понадобится root-доступ (sudo
), чтобы вносить изменения или создавать эти файлы.
- Сделаем файл исполняемым, выполнив команду:
``` ударить
sudo chmod +x /etc/systemd/system/startup.service
- В
/etc/systemd/system/startup.service
мы должны вставить нижеследующее в файл как таковой:
``` ударить
[Ед. изм]
Описание=Мой запуск
[Услуга]
ExecStart=/usr/local/sbin/notifyRemote.sh
[Установить]
WantedBy=multi.user.target
- ExecStart здесь самый важный ключ, потому что он указывает на программу Bash, которая будет запускаться при запуске службы.
- Мы можем протестировать службу, запустив
sudo systemctl start startup.service
, чтобы убедиться, что скрипт запустится.
- Теперь, чтобы разрешить запуск служб при загрузке, запустим команду:
``` ударить
sudo systemctl включить startup.service
Вывод
Теперь мы должны успешно создать сценарий, который запускается автоматически каждый раз, когда мы запускаем нашу машину с Linux.
Вы можете обратиться к справочной странице systemd для получения дополнительной информации.
Я надеюсь, что вы найдете это полезным. Пожалуйста, оставьте лайк, комментарий и поделитесь, если вы нашли это полезным, а также вы можете подумать [купить мне кофе] (https://www.buymeacoffee.com/kayode).
Также опубликовано здесь: https://blog.zt4ff.dev/running-scripts-on-boot-in-linux-using-systemd
Оригинал