Как выполнять скрипты / команды с помощью /etc/rc.d/rc.local в CentOS / RHEL 7

by itisgood

Проблема

Скриптыы / команды в файле конфигурации /etc/rc.d/rc.local не могли работать во время загрузки в системе CentOS / RHEL 7.

То же самое используется для более ранних версий CentOS / RHEL.

Является ли это неразрешимым или есть обходной путь, чтобы использовать этот метод?

Ответ

Служба rc.local по умолчанию останавливается в CentOS / RHEL 7.

Если вы проверите файл конфигурации etc/rc.d/rc.local, в нем есть подсказки об этом моменте.

# 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.

...
[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 не имеет разрешения на выполнение.

Добавьте этому файлу разрешения на выполнение.

# ls -l /etc/rc.d/rc.local
-rw-r--r--. 1 root root 473 Nov  8 00:20 /etc/rc.d/rc.local
# chmod +x /etc/rc.d/rc.local
# 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, чтобы она запускалась каждый раз после перезагрузки.

# systemctl enable rc-local

Подтвердите, включена ли служба:

# systemctl status rc-local.service

3. Затем запустите rc-local

# systemctl start rc-local

You may also like

Leave a Comment