Во многих современных версиях версиях cпо уолчанию отключен rc.local, но часто нужен функционал выполнения операций при запуске системы.
На примере Debian, для других систем пути могут отличаться, но принцип тот же.
Создаем файл:
1 | nano /etc/systemd/system/rc-local.service |
со следующим содержимым:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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 |
следующий шагом необходимо создать сам rc.local
nano /etc/rc.local
добавив в него всего несколько строк:
1 2 | #!/bin/sh -e exit 0 |
Добавляем права на запуск и включаем сервис
1 2 3 | chmod +x /etc/rc.local systemctl enable rc-local systemctl start rc-local |
Автоматизация процесса
Автоматизировать этот процесс можно следующим скриптом
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/bash cat > /etc/systemd/system/rc-local.service << EOF [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 echo '#!/bin/sh -e' > /etc/rc.local echo 'exit 0' >> /etc/rc.local chmod +x /etc/rc.local systemctl enable rc-local systemctl restart rc-local |