GNU/Linux >> Znalost Linux >  >> Cent OS

Jak spouštět skripty/příkazy pomocí /etc/rc.d/rc.local v CentOS/RHEL 7

Problém

Skripty/příkazy v konfiguračním souboru /etc/rc.d/rc.local nemohl fungovat v době spouštění v systému CentOS/RHEL 7. Totéž fungovalo v dřívějších verzích CentOS/RHEL. Je zastaralá nebo existuje řešení, jak tuto metodu nadále používat?

Odpověď

rc.local služba je ve výchozím nastavení v CentOS/RHEL 7 zastavena. Pokud se podíváte do konfiguračního souboru etc/rc.d/rc.local, jsou zde rady.

# 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

Řešení

1. Pomocí systemd , init skripty už tam nejsou. V důsledku toho se muselo změnit provádění úloh při spouštění. V CentOS/RHEL 7 je soubor /etc/rc.d/rc.local řízen službou rc-local.

...
[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. Ve výchozím nastavení nemá soubor /etc/rc.d/rc.local oprávnění ke spuštění. Připojte k tomuto souboru oprávnění k provedení.

# 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. Povolte službu rc.local, abyste se ujistili, že se spustí pokaždé po restartu.

# systemctl enable rc-local

Potvrďte, zda je služba povolena:

# systemctl status rc-local.service

3. Poté prosím spusťte rc-local službu.

# systemctl start rc-local


Cent OS
  1. Jak se aktualizuje /etc/motd?

  2. CentOS / RHEL 7 :Jak synchronizovat chrony s místními hodinami

  3. Jak systemd-tmpfiles vyčistí /tmp/ nebo /var/tmp (náhrada tmpwatch) v CentOS / RHEL 7

  1. Jak se obnovit ze smazaného kořenového záznamu v souborech /etc/shadow a/nebo /etc/passwd v CentOS / RHEL 6

  2. CentOS / RHEL :Jak protokolovat všechny příkazy LVM

  3. Jak provést příkaz Pstack na CentOS/RHEL

  1. Jak obnovit z poškozeného nebo prázdného souboru /etc/mtab v CentOS/RHEL 7

  2. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  3. Který uživatel spouští příkazy definované v /etc/rc.local?