Как запускать скрипты при загрузке в Linux с помощью Systemd

Как запускать скрипты при загрузке в Linux с помощью Systemd

30 апреля 2022 г.

Вступление


В этой статье мы настроим наш компьютер с Linux на автозапуск скрипта при загрузке. Для целей этой статьи мы будем использовать службы systemd.


Кстати, я использую Arch Linux, поэтому, если есть какая-то разница при использовании другого дистрибутива, не стесняйтесь оставлять комментарии, пожалуйста.


Linux-when.gif


Что такое системный?


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



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE