Wie führe ich rc.local als normalen Benutzer aus?

8

Ich habe einige Empfehlungen, die ich direkt nach dem Login aufrufen möchte, einschließlich 'startx', und ich dachte, es rc.localscheint ein guter Ort für sie zu sein, aber das Problem ist, dass rc.locales als root ausgeführt wird und ich das nicht will, natürlich kann ich es tun etwas wie das:

su username -c somecommend-here

Aber ich suche nach einer Möglichkeit, die gesamte 'rc.local' als normaler Benutzer auszuführen, oder gibt es vielleicht einen besseren Ort, um meinen Code abzulegen?

PS. Ich benutze Ubuntu-Mini-Remix 1104i386

Vielen Dank

omeid
quelle
AFAIK rc.local wird parallel zur Anmeldung am Ende der Startsequenz ausgeführt. Ich meine, es wird ausgeführt, auch wenn Sie sich nicht anmelden, aber Sie können angemeldet sein und es könnte die Ausführung ausstehen.
Javier Rivera
@ JavierRivera Also, was wäre die Lösung?
Omeid

Antworten:

6

Der einfachste Weg, einen Befehl zu starten, wenn sich ein Benutzer anmeldet, besteht darin, eine .desktopDatei für den Befehl zu erstellen und in den ~/.config/autostartOrdner zu stecken . Wie sieht die Desktop-Datei aus? Hier ist ein Beispiel, das die Ask Ubuntu-Homepage bei wgetjeder Anmeldung des Benutzers abruft:

[Desktop Entry] 
Name=Launch wget
Comment=Fetches the Ask Ubuntu home page.
Exec=wget http://askubuntu.com/
Nathan Osman
quelle
Es scheint keine gute Idee zu sein, nach der grafischen Anmeldung zu starten startx(wie vom OP gefordert) .
Enzotib
@enzotib: Ein grafisches Login wird nicht erwähnt.
Nathan Osman
Vielleicht falsch verstanden habe ich die Frage, glaubte ich, würde der Benutzer starten startxaus rc.local. Entschuldigung
Enzotib
1

Ich kenne die Unterschiede zwischen /etc/rc.local und einem crontab nicht, aber ich erstelle im Allgemeinen ein Dienstkonto und füge den entsprechenden Job hinzu. Zum Beispiel: sudo crontab -u p4padmin -e

@reboot ~/bin/p4p -d -r ~/var/p4p/cache/foo -p 2020 -t depot:2020 -L ~/var/p4p/log/foo.log

Sie müssen sich nicht anmelden, damit der Dienst ausgeführt werden kann.

Stephen Niedzielski
quelle
0

Die Linux-Methode besteht darin, Ihre Befehle ~/.bashrcanstelle von anzuhängen /etc/rc.local.

Jeder Benutzer hat ein .bashrcin seinem Home-Verzeichnis. Diese Skriptdatei wird automatisch ausgeführt, sobald sich ein Benutzer anmeldet. Sie wird mit den Anmeldeinformationen des Benutzers ausgeführt, sodass kein suBefehl erforderlich ist.

Es scheint mir, dass dies genau das ist, wonach Sie suchen.

thom
quelle
Dies ist nicht ganz richtig, da .bashrces nicht gelesen wird, wenn sich ein Benutzer lightdmbeispielsweise mit dem Normalen anmeldet .
Ich schloss daraus zu schnell , dass der Benutzer wurde eine Kommandozeilen - Login anstelle einen Anzeige - Manager wegen des „Handbuch“ startx er erwähnte .... meinen schlecht :-)
THOM