Wo befinden sich die Startskripte für Unity Desktop?
11
Ich möchte ein Skript ausführen, sobald meine lightdm-Authentifizierung erfolgreich ist und meine Unity geladen wird. und ich möchte meine Skripte als Root-Benutzer ausführen.
@Shnd X startet tatsächlich vor lightdm, da lightdm auch in X ausgeführt wird. Wenn Sie also etwas als Benutzer ausführen möchten, möchten Sie es wahrscheinlich "nach erfolgreicher Lightdm-Authentifizierung" oder mit anderen Worten "beim Starten des Desktops". Es ist auch möglich, ein Skript auszuführen, wenn Ihr Computer gerade bootet, unabhängig davon, ob Sie einen angemeldeten Benutzer haben oder nicht (das ist beispielsweise der Start von X). Dies ist eine völlig andere Frage. Wenn Sie etwas als Benutzer ausführen möchten, möchten Sie dies wahrscheinlich und die Antwort hängt von Ihrem Init-System ab.
Erikbwork
Antworten:
5
Fügen Sie zuerst Ihr Skript ein /usr/binund erteilen Sie die Ausführungsberechtigung.
Erstellen Sie nun eine .desktop-Datei, in /home/[user-name]/.config/autostart/der Ihr Skript ausgeführt wird, das beim Start ausgeführt wird.
Beispiel: - Lassen Sie Ihren Dateinamen des Skripts "Beispiel" oder "Beispiel.sh" sein.
Erstellen Sie mit gedit eine .desktop-Datei mit den folgenden Zeilen und speichern Sie sie als filename.desktop in /home/[user-name]/.config/autostart/
"$ HOME / .config / upstart" kein solches Verzeichnis auf meinem Computer.
Kalamalka Kid
1
@ KalamalkaKid Welche Ubuntu-Version verwendest du? Das Upstart-Verzeichnis sollte sich an dieser Stelle befinden /home/yourusername/.config/upstart/. Öffnen Sie Ihren Home Director in Nautilus, drücken Sie Strg + H und Sie sollten das Verzeichnis .config
TuKsn
2
Um einen Befehl auszuführen , wie Wurzel , nachdem Anmeldung, gibt es eine weiteren einfachen Trick:
Es dauert zwei Schritte:
Erstellen Sie einen Trigger - Datei auf Login
Erstellen Sie einen Cronjob, der von root ausgeführt wird (gesetzt in /etc/crontab), um ein winziges Skript auszuführen (Ihren Befehl ausführen), wenn und nur wenn die Triggerdatei vorhanden ist. Da die Triggerdatei von demselben Skript entfernt wird, wird Ihr Befehl nur einmal ausgeführt.
Die Reihenfolge ist dann:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
Die Einrichtung
Die zwei kleinen Skripte:
Eine, um die Triggerdatei beim Anmelden zu erstellen:
#!/bin/sh
touch $HOME/.trigger
und eins zwei führen den Befehl aus:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
Kopieren Sie beide Skripte in zwei leere Dateien und speichern Sie sie als create_trigger.shund run_command.sh.
Machen Sie beide aus praktischen Gründen ausführbar.
Fügen Sie Ihren Startanwendungen den folgenden Befehl hinzu (Dash> Startanwendungen> Hinzufügen).
/path/to/create_trigger.sh
Fügen Sie der /etc/crontabDatei ( sudo nano /etc/crontab) die folgende Zeile hinzu :
* * * * * root /path/to/run_command.sh
Jetzt wird der definierte Befehl innerhalb einer Minute nach der Anmeldung einmal ausgeführt.
Antworten:
Fügen Sie zuerst Ihr Skript ein
/usr/bin
und erteilen Sie die Ausführungsberechtigung.Erstellen Sie nun eine .desktop-Datei, in
/home/[user-name]/.config/autostart/
der Ihr Skript ausgeführt wird, das beim Start ausgeführt wird.Beispiel: - Lassen Sie Ihren Dateinamen des Skripts "Beispiel" oder "Beispiel.sh" sein.
Erstellen Sie mit gedit eine .desktop-Datei mit den folgenden Zeilen und speichern Sie sie als filename.desktop in
/home/[user-name]/.config/autostart/
Hier
Exec=sudo example
oderExec=sudo example.sh
führt Ihr Skript als Root aus./usr/bin
Geben Sie der .desktop-Datei die Ausführungsberechtigung.Jetzt wird Script beim Start ausgeführt.
quelle
Andere Möglichkeit:
Erstellen Sie eine Datei in
$HOME/.config/upstart/my-upstart-script.conf
Weitere Details zu Upstart :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
Infos zum Ausführen
sudo
ohne Passwort:Wie führe ich eine Anwendung mit sudo ohne Passwort aus?
Wie führe ich bestimmte sudo-Befehle ohne Passwort aus?
quelle
/home/yourusername/.config/upstart/
. Öffnen Sie Ihren Home Director in Nautilus, drücken Sie Strg + H und Sie sollten das Verzeichnis .configUm einen Befehl auszuführen , wie Wurzel , nachdem Anmeldung, gibt es eine weiteren einfachen Trick:
Es dauert zwei Schritte:
/etc/crontab
), um ein winziges Skript auszuführen (Ihren Befehl ausführen), wenn und nur wenn die Triggerdatei vorhanden ist. Da die Triggerdatei von demselben Skript entfernt wird, wird Ihr Befehl nur einmal ausgeführt.Die Reihenfolge ist dann:
Die Einrichtung
Die zwei kleinen Skripte:
Eine, um die Triggerdatei beim Anmelden zu erstellen:
und eins zwei führen den Befehl aus:
create_trigger.sh
undrun_command.sh
.Fügen Sie Ihren Startanwendungen den folgenden Befehl hinzu (Dash> Startanwendungen> Hinzufügen).
Fügen Sie der
/etc/crontab
Datei (sudo nano /etc/crontab
) die folgende Zeile hinzu :Jetzt wird der definierte Befehl innerhalb einer Minute nach der Anmeldung einmal ausgeführt.
quelle