Weiß jemand (aus einer Ressourcenliste), welche Skripte automatisch ausgeführt werden und wann, vom Moment des Hochfahrens des Computers bis zu seinem erneuten Herunterfahren?
Ich kenne mehrere Stellen, an denen ich Skripte zur automatischen Ausführung hinzufügen kann, habe es jedoch nie geschafft, eine mehr oder weniger vollständige Liste zusammenzustellen.
Ich kenne zum Beispiel diese:
~/.profile
wird beim Login ausgeführt- Ich kann
crontab -e
Skripte hinzufügen, die zu bestimmten Zeiten und/oder an bestimmten Tagen ausgelöst werden.
Aber ich kann nicht herausfinden, wo ich Skripte ablegen soll, damit sie ausgeführt werden
- nach dem Booten, bevor X initialisiert wird
- nachdem X (oder eine andere grafische Shell) initialisiert wurde, aber bevor sich jemand anmeldet
- nach der Anmeldung bei einer X-Sitzung
- vor/nach schneller Benutzerumschaltung
- vor dem Abmelden aus einer X-Sitzung
- vor dem Herunterfahren auf der X-Shell
- nach dem Herunterfahren von X, vor dem Systemstopp
- nach dem Login/vor dem Logout über tty-1..6
- nach dem Login/vor dem Logout über SSH
Gibt es eine solche Liste? Wenn nicht, können wir hier eine zusammenstellen?
Antwort1
Für Ubuntu Linux haben wir folgende Lösung:
Für nach dem Booten, bevor X initialisiert wird:Ubuntu startet X-Windows von GDM (die den Ubuntu-Desktop verwenden) oder von KDM (die den Kubuntu-Desktop verwenden).
Um ein Skript vor GDM/KDM auszuführen, müssen Sie Ihr eigenes Upstart-Skript schreiben. Lesen Sie dazuUpstart-Kochbuch.
Nach dem Benutzerwechsel:Sie müssen das Skript in die
~/.bashrc
Datei einfügen.Nach der Anmeldung über TTY:Sie müssen das Skript in die
~/.bash_profile
Datei einfügen.Nach der Anmeldung mit SSH, aber nicht während der lokalen Anmeldung mit TTY:Auch in diesem Fall müssen Sie das Skript in derselben
~/.bash_profile
Datei hinzufügen. Testen Sie in diesem Fall jedoch, ob dieSSH_CONNECTION
Umgebungsvariable vorhanden ist, und führen Sie die Befehle nur aus, wenn Sie feststellen, dass sie vorhanden ist.Vor dem Abmelden über TTY:Sie müssen das Skript in die
~/.bash_logout
Datei einfügen.Vor dem Abmelden über SSH:Sie müssen das Skript in die
~/.bash_logout
Datei einfügen, aber in diesem Fall auch das Vorhandensein derSSH_CONNECTION
Umgebungsvariable prüfen und die Befehle nur ausführen, wenn Sie feststellen, dass sie vorhanden ist. In der Datei müssen Sie die Zeile hinzufügenif [[ -n $SSH_CONNECTION ]]
Antwort2
Wenn Sie an in Linux integrierten Aufgaben interessiert sind, können Sie sich auch auf die Linux-Runlevels beziehen. Dabei handelt es sich um einen Betriebsmodus, der eine Initialisierung im V-Stil des Unix-Systems implementiert.
- 0 Halt: Fährt das System herunter.
- 1 Einzelbenutzermodus für Verwaltungsaufgaben.
- 2 Mehrbenutzermodus: Konfiguriert keine Netzwerkschnittstellen und exportiert keine Netzwerkdienste.
- 3 Mehrbenutzermodus mit Netzwerkbetrieb Startet das System normal.
- 4 Nicht verwendet/Benutzerdefinierbar Für besondere Zwecke.
- 5 Starten Sie das System normal mit dem entsprechenden Displaymanager. (mit GUI) Als Runlevel 3 + Displaymanager.
- 6 Neustart: Startet das System neu.
Unten sehen Sie beispielsweise eine unvollständige Liste von Linux-Prozessen und ihren Runlevel-Einstellungen:
chkconfig --list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.
.
.