В старых версиях Linux для запуска своего скрипта при загрузке системы мы использовали /etc/rc.d/init.d Практически все основные дистрибутивы Linux отказались от init и перешли на systemd и предыдущий метод теперь не рекомендуется.
Создание собственного скрипта
1.Создадим образец пользовательского сценария, который будет автоматически запускаться при загрузке системы.
nano /var/tmp/test.sh
#!/bin/bash
echo "This is a script to test auto run during boot" > /var/tmp/script.out
echo "The time the script run was --> `date`" >> /var/tmp/script.out
2. Добавим права на запуск
chmod +x /var/tmp/test_script.sh
Создание нового сервиса systemd.
Создайте новый файл сервисного модуля в /etc/systemd/system/test.service с содержанием ниже. Название сервиса определяется пользователем и может иметь любое имя по вашему выбору.
nano /etc/systemd/system/test.service
[Unit]
Description=Description for sample script goes here
After=network.target
[Service]
Type=simple
ExecStart=/var/tmp/test_script.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target
After = : если сценарию требуются другие системные средства. Измените раздел [Unit], включив в него соответствующие директивы After =, Wants = или Require =.
Type = : переключатель Type = simple для Type = idle в разделе [Service], чтобы отложить выполнение сценария до тех пор, пока не будут выполнены все другие задания.
WantedBy = : цель для запуска сценария примера
Как включить системный сервисный модуль
1. Необходимо перезагрузить процесс systemd, чтобы учесть вновь созданный test.service. Тоже самое нужно делать каждый раз, когда test.service изменяется.
systemctl daemon-reload
2. Включите эту службу, чтобы запускаться автоматически после перезагрузки.
systemctl enable test.service
3. Запустите сервис.
systemctl start test.service
4. Перезагрузите компьютер, чтобы убедиться, что сценарии запускаются должным образом во время загрузки системы.
systemctl reboot
Посмотреть список установленных системных модулей можно просто набрав в терминале команду systemctl