Включение rc.local в Debian 10

Одна из самых полезных функций файла rc.local — запуск скриптов во время загрузки системы. К примеру, в нём можно было запустить правила iptables, добавив всего лишь строчку вроде /etc/firewall/iptables.sh.

К сожалению, в современных версиях Debian эта функция стала недоступна, но её можно вернуть вручную, и в этой статье речь пойдёт именно об этом.

В первую очередь нам необходимо создать службу rc-local.service.

Для этого создадим файл /etc/systemd/system/rc-local.service

# touch /etc/systemd/system/rc-local.service

Затем откроем его

# nano /etc/systemd/system/rc-local.service

и внесём в него несколько строк:

[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

После этого создадим файл /etc/rc.local

# touch /etc/rc.local

откроем его

# nano /etc/rc.local

и сюда добавим такие строчки:

#!/bin/sh -e

exit 0

Сделаем этот файл исполняемым

# chmod +x /etc/rc.local

Далее включим службу в автозагрузку, запустим её и проверим состояние

# systemctl enable rc-local
# systemctl start rc-local
# systemctl status rc-local

Если показывает такое состояние

Active: active (exited)

значит работает.

Для проверки можно запустить скрипт, который во время загрузки будет создавать пустой файл с именем даты и времени запуска системы. Для этого создадим каталог /home/rc-local/

# mkdir /home/rc-local/

и в самом файле /etc/rc.local перед строчкой

exit 0

добавим

touch /home/rc-local/`date +%Y-%m-%d_%H-%M` &

Результат будет таким:

В данном примере показаны 3 файла, каждый из которых был создан в процессе загрузки системы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *