GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Skript mit rc.local ausführen:Skript funktioniert, aber nicht beim Booten

Auf einigen Linux-Systemen (z. B. Centos &RH) /etc/rc.local ist zunächst nur ein symbolischer Link auf /etc/rc.d/rc.local . Auf diesen Systemen, wenn der symbolische Link unterbrochen ist, und /etc/rc.local ist eine separate Datei, ändert sich dann zu /etc/rc.local wird beim Booten nicht gesehen -- der Bootvorgang führt die Version in /etc/rc.d aus . (Sie funktionieren, wenn man /etc/rc.local ausführt manuell, wird aber beim Booten nicht ausgeführt.)

Klingt wie auf dem System von dimadima, das sind separate Dateien, aber /etc/rc.d/rc.local ruft /etc/rc.local auf

Der symbolische Link von /etc/rc.local zum 'echten' in /etc/rc.d kann verloren gehen, wenn man rc.local bewegt in ein Backup-Verzeichnis und kopiert es zurück oder erstellt es von Grund auf neu, ohne das Original in /etc zu erkennen war nur ein symbolischer Link.


In diesem Beispiel eines rc.local-Skripts verwende ich die io-Umleitung in der allerersten Ausführungszeile zu meiner eigenen Protokolldatei:

#!/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

In Ubuntu ist mir aufgefallen, dass es 2 Dateien gibt. Der echte ist /etc/init.d/rc.local; es scheint der andere /etc/rc.local ist falsch?

Sobald ich die richtige geändert habe (/etc/init.d/rc.local ) es wurde wie erwartet ausgeführt.


Am Ende landete ich bei Emporkömmling, was gut funktioniert.


Linux
  1. utorrent-Startskript / utorrent beim Booten ausführen – Ubuntu 14.04 / 14.10

  2. Wie führe ich Linux-Bash-Befehle in einem PERL-Skript aus?

  3. Linux – Kali Linux ist installiert, wird aber nicht im Boot-Manager angezeigt?

  4. Bashscript funktioniert vom Terminal, aber nicht von Crontab?

  5. Linux – Skript alle 30 Minuten mit Systemd ausführen?

Skript mit Argumenten als Benutzer ausführen?

Wie fordere ich eine Datei an, speichere sie aber nicht mit Wget?

Ubuntu - Befehl beim Start mit sudo ausführen

Pycharm tensorflow ImportError funktioniert aber gut mit Terminal

Conda-Befehl funktioniert in der Eingabeaufforderung, aber nicht im Bash-Skript

Führen Sie nach dem Booten der EC2-Instance ein Bash-Skript aus