GNU/Linux >> Znalost Linux >  >> Linux

Spusťte skript pomocí rc.local:skript funguje, ale ne při spouštění

Na některých linuxech (např. Centos a RH), /etc/rc.local je zpočátku pouze symbolický odkaz na /etc/rc.d/rc.local . V těchto systémech, pokud je symbolický odkaz přerušen, a /etc/rc.local je samostatný soubor, pak se změní na /etc/rc.local nebude vidět při bootování -- proces bootování spustí verzi v /etc/rc.d . (Budou fungovat, pokud jeden spustí /etc/rc.local ručně, ale nebude spuštěn při spouštění.)

Zní to jako v systému dimadima, jsou to samostatné soubory, ale /etc/rc.d/rc.local volání /etc/rc.local

Symbolický odkaz z /etc/rc.local na 'skutečný' v /etc/rc.d se může ztratit, pokud se posunete o rc.local do záložního adresáře a zkopíruje jej zpět nebo jej vytvoří od začátku, aniž by si uvědomil původní v /etc byl jen symbolický odkaz.


V tomto příkladu skriptu rc.local používám přesměrování io hned na prvním řádku spuštění na můj vlastní soubor protokolu:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exec 1>/tmp/rc.local.log 2>&1  # send stdout and stderr from rc.local to a log file
set -x                         # tell sh to display commands before execution

/opt/stuff/somefancy.error.script.sh

exit 0

V Ubuntu jsem si všiml, že jsou 2 soubory. Skutečná je /etc/init.d/rc.local; zdá se, že druhý /etc/rc.local je falešný?

Jakmile jsem upravil ten správný (/etc/init.d/rc.local ) se provedlo přesně podle očekávání.


Skončil jsem u upstart, který funguje dobře.


Linux
  1. spouštěcí skript utorrent / spouštění utorrentu při spouštění – Ubuntu 14.04 / 14.10

  2. Může být skript spustitelný, ale nečitelný?

  3. Linux – Spouštět skript každých 30 minut pomocí Systemd?

  1. Příkaz Rm ve skriptu Bash nefunguje s proměnnou?

  2. Příkaz nebyl nalezen v Zsh, ale nalezen v Bash?

  3. Příkaz sed s volbou -i selže na Macu, ale funguje na Linuxu

  1. Povolení bash.sh ke spuštění cronu odepřeno

  2. Pycharm tensorflow ImportError, ale funguje dobře s Terminálem

  3. Příkaz Conda pracuje v příkazovém řádku, ale ne ve skriptu bash