Введение
Systemd — это программное приложение, которое предоставляет ряд системных компонентов для операционных систем Linux. Это первая служба, которая инициализирует последовательность запуска. Он всегда работает с pid 1. Это также помогает управлять системой и службой приложений в нашей ОС Linux.
Мы также можем запустить любой пользовательский скрипт в качестве службы systemd. Это помогает скрипту запускаться при старте системы. Это может быть полезно для запуска любого скрипта, который нужно запускать только при запуске или запускать все время.
В этом руководстве объясняется, как запустить сценарий оболочки в качестве службы Systemd.
Создать сценарий оболочки
Прежде всего, создайте пример сценария оболочки, который будет выполняться всегда, пока работает система.
sudo vi /usr/bin/script.sh
Добавьте следующий пример сценария:
#!/bin/bash
while true
do
//Your statements here
sleep 10
done
Сохраните скрипт и установите права на выполнение с помощью команды chmod:
sudo chmod +x /usr/bin/script.sh
Для однократного запуска скрипта при запуске системы не требуется бесконечный цикл. Вместо приведенного выше сценария вы можете использовать сценарий оболочки для запуска в качестве службы Systemd.
Создайте файл SystemD
Создайте служебный файл для systemd в вашей системе. Этот файл должен иметь расширение .service
и сохраняться в каталоге /lib/systemd/system/
:
sudo vi /lib/systemd/system/shellscript.service
Теперь добавьте следующее содержимое и обновите имя и путь файла скрипта. Вы также можете изменить описание услуги:
[Unit]
Description=My Shell Script
[Service]
ExecStart=/usr/bin/script.sh
[Install]
WantedBy=multi-user.target
Включить новую услугу
Ваша системная служба добавлена к вашей службе. Давайте перезагрузим демон systemctl, чтобы прочитать новый файл. Вам необходимо перезагружать этот демон каждый раз после внесения изменений в файл.service.
sudo systemctl daemon-reload
Теперь включите запуск службы при запуске системы, также запустите службу с помощью следующих команд:
sudo systemctl enable shellscript.service
sudo systemctl start shellscript.service
Наконец, убедитесь, что скрипт запущен и работает как служба systemd:
sudo systemctl status shellscript.service
Вывод
Это руководство помогло вам настроить и запустить сценарий оболочки в качестве службы systemd в Linux.