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.
Wo befinden sich Startskripte in Unity?
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.
Wo befinden sich Startskripte in Unity?
Antworten:
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/
[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script
Hier Exec=sudo exampleoder Exec=sudo example.shführt Ihr Skript als Root aus. /usr/bin
Geben Sie der .desktop-Datei die Ausführungsberechtigung.
Jetzt wird Script beim Start ausgeführt.
Andere Möglichkeit:
Erstellen Sie eine Datei in $HOME/.config/upstart/my-upstart-script.conf
start on desktop-start
stop on desktop-end
script
sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script
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:
/home/yourusername/.config/upstart/. Öffnen Sie Ihren Home Director in Nautilus, drücken Sie Strg + H und Sie sollten das Verzeichnis .config
Um 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:
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
create_trigger.shund run_command.sh.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.