Thank you for reading this post, don't forget to subscribe!
Проблема
Скрипты / команды в файле конфигурации /etc/rc.d/rc.local не могли работать во время загрузки в системе CentOS / RHEL 7.
То же самое используется для более ранних версий CentOS / RHEL.
Служба rc.local по умолчанию останавливается в CentOS / RHEL 7.
Если вы проверите файл конфигурации etc/rc.d/rc.local, в нем есть подсказки об этом моменте.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# cat /etc/rc.d/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local |
Разбор
1. С помощью systemd скриптов инициализации больше нет.
Следовательно, выполнение задач во время загрузки должно было измениться.
В CentOS / RHEL 7 файл /etc/rc.d/rc.local контролируется локальной службой rc.
1 2 3 4 5 6 7 8 9 10 11 |
... [Unit] Description=/etc/rc.d/rc.local Compatibility ConditionFileIsExecutable=/etc/rc.d/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.d/rc.local start TimeoutSec=0 RemainAfterExit=yes |
2. По умолчанию файл /etc/rc.d/rc.local не имеет разрешения на выполнение.
Добавьте этому файлу разрешения на выполнение.
1 2 |
# ls -l /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local |
1 |
# chmod +x /etc/rc.d/rc.local |
1 2 |
# ls -l /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local |
3. Включите службу rc.local, чтобы она запускалась каждый раз после перезагрузки.
1 |
# systemctl enable rc-local |
Подтвердите, включена ли служба:
1 |
# systemctl status rc-local.service |
3. Затем запустите rc-local
1 |
# systemctl start rc-local |