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 initProzess unterzogen. Dies initist 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 .confDatei, 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:
tee ~/.config/upstart/myjob.conf <<EOF
description "My job"
start on desktop-start
stop on desktop-end
script
firefox 'http://upstart.ubuntu.com/cookbook/#session-job'
end script
EOF
Sie können es manuell steuern:
start myjob
# or
initctl start myjob
Der serviceBefehl wird verwendet, um Systemjobs (die in /etc/init.doder /etc/init) zu steuern . Zum Steuern von Sitzungsjobs muss der initctlBefehl verwendet werden, mit dem mit Upstart interagiert wird.
Sehen Sie man upstart-eventsweitere Veranstaltungen können Sie verwenden.