Ich habe zwei Skripte - eines zum Mounten einiger Ordner über SSHFS - und eines zum Aufheben der Bereitstellung.
Ich möchte das Mount-Skript starten, wenn mein Standard-Ubuntu-Desktop gestartet wird (nachdem ich mich an der grafischen Konsole angemeldet habe) - und das Unmount-Skript, wenn ich mich oben rechts vom Zahnrad "abmelden ..." der Desktop.
Kann mir bitte jemand sagen, wie ich das erreichen kann? Was sind die bequemsten / Standard-Hooks, um Befehle beim Starten / Beenden des Desktops auszuführen?
Antworten:
In Anbetracht Ihrer Anforderung, einen Job auszuführen, wenn Sie sich bei Unity anmelden, und nicht für andere Anmeldungen, scheint ein Upstart- Sitzungsjob perfekt zu sein.
Möglicherweise haben Sie es bemerkt: Prozesse, die Sie nach einer GUI-Anmeldung ausführen, werden einem zweiten
init
Prozess unterzogen. Diesinit
ist eine ordnungsgemäße Upstart-Initiale, und Sie können Sitzungsjobs basierend auf den von ihr ausgegebenen Ereignissen starten und stoppen. Es werden überhaupt keine Root-Rechte benötigt. Besser noch (oder schlechter je nach Perspektive), dies wird für kopflose Systeme noch nicht vollständig unterstützt. Ein SSH-Login hat den Benutzer init nicht von einem Schnelltest gestartet, den ich gerade durchgeführt habe.Erstellen Sie eine neue
.conf
Datei, um einen Sitzungsjob zu erstellen~/.config/upstart
. Dies ist das Standardprimärverzeichnis für Upstart-Sitzungsjobs ($XDG_CONFIG_HOME/upstart
). Erstellen Sie es, wenn es nicht vorhanden ist. Hier ist ein Beispieljob:Sie können es manuell steuern:
Der
service
Befehl wird verwendet, um Systemjobs (die in/etc/init.d
oder/etc/init
) zu steuern . Zum Steuern von Sitzungsjobs muss derinitctl
Befehl verwendet werden, mit dem mit Upstart interagiert wird.Sehen Sie
man upstart-events
weitere Veranstaltungen können Sie verwenden.quelle
Die Lösung bestand darin, Startaufgaben zu verwenden. Ich benötigte zwei Aufgaben - eine, die ausgelöst wurde, als der Desktop für einen Benutzer initialisiert wurde. die zweite, wenn die Benutzersitzung abläuft. Die folgenden zwei Skripte funktionieren für mich unter Ubuntu 14.04.
In ~ / .config / upstart / desktopOpen.conf
In ~ / .config / upstart / desktopClose.conf
Ich drücke die Daumen, dass diese Ereignisse auch in zukünftigen Ubuntu-Versionen die Anforderungen erfüllen werden. Ich dachte, es lohnt sich, meine Lösung hier zu veröffentlichen - falls sie für andere von Nutzen ist.
quelle
Hier einige Vorschläge zum Ausführen eines Skripts nach der Anmeldung:
StackOverflow Linux-Skript nach dem Start : Cliff stellt fest, dass Ihre * .sh-Datei in /etc/profile.d abgelegt wird.
Wenn Sie beim Booten Skripte ausführen möchten, finden Sie hier einige Vorschläge:
StackOverflow Linux-Skript nach dem Start : Cliff-Notizen verwenden /etc/rc.local oder crontab.
quelle