So führen Sie bei der Anmeldung bei Ubuntu automatisch ein Shell-Skript aus


14

Wie kann ich ein Skript automatisch ausführen lassen, wenn ich mich anmelde? Nicht beim Starten der Maschine und nicht für alle Benutzer, sondern nur, wenn ich mich (oder ein bestimmter Benutzer mit dem Skript) über die GNOME-Benutzeroberfläche anmelde.

Nach dem Lesen an anderer Stelle dachte ich, es sei .bash_profilein meinem Home-Verzeichnis, aber für mich hat es keine Wirkung. Wenn ich es manuell in einem Terminalfenster durch Eingabe ausführe, ~/.bash_profilefunktioniert es, aber es wird nicht automatisch ausgeführt, wenn ich mich anmelde.

Ich verwende Ubuntu 11.04. Die Dateiberechtigung für mein .bash_profile ist -rwx------. In meinem Home-Verzeichnis war kein .bash_profile vorhanden, bevor ich es heute erstellt habe.

Ich erinnere mich an ältere Linux-Versionen mit einer .profileDatei für jeden Benutzer, aber das funktioniert auch nicht.

Wie wird es gemacht? Muss ich noch etwas konfigurieren, damit das .bash_profile funktioniert? Oder muss sich das Anmeldeskript pro Benutzer in einer anderen Datei befinden?


.bash_profile, .profile und .bashrc (welche tatsächlich von Ubuntu verwendet werden) werden jedes Mal geladen, wenn Sie ein Bash-Terminal öffnen. Eigentlich bin ich mir nicht sicher, ob sie geladen werden, wenn Sie sich nur bei GDM anmelden.
Juan Sebastian Totero

Das Posten Ihrer Ubuntu-Version könnte helfen. In Ubuntu 10.10 funktioniert .bashrc "für mich (TM)".
Vlueboy

Meinen Sie, wenn Sie sich in der GUI oder in der Shell anmelden?
Flimzy

Bash lädt sie, wenn Sie eine neue Shell starten. Sie werden also nur geladen, wenn Sie ein Terminalfenster öffnen oder sich bei einem virtuellen Terminal anmelden, nicht, wenn Sie sich bei Gnome (GDM) anmelden.
Shiftycow

Ich benutze Ubuntu 11.04, wie ich in der ursprünglichen Frage erwähnt habe.
Mike Rowave

Antworten:


11

Sie können einfach den folgenden Befehl unter System> Einstellungen> Startanwendungen hinzufügen:

bash /full/path/to/your/script.sh

Das sollte den Trick machen;)


Weißt du was, das habe ich schon mal gemacht und es hat nicht funktioniert ... außer, dass ich nicht "bash" vor dem Pfad des Skripts geschrieben habe! Ich werde es später mit der Bash versuchen. Aus Neugier, wenn Sie etwas über die GUI in Startup Applications eingeben, in welcher Datei ist es registriert?
Mike Rowave

Startup - Programme sollten in/etc/xdg/autostart
shiftycow am

Hinzufügen bash /home/myusername/scriptnamezu "Startup Applications" hat funktioniert! Vielen Dank. Dies könnte jedoch spezifisch für GNOME unter Ubuntu sein. Deshalb habe ich mich gefragt, wo die Einträge in diesem Menüpunkt "Startup Applications" (Startanwendungen) registriert sind, da dies in anderen modernen Linux-Versionen wahrscheinlich ähnlicher ist.
Mike Rowave

2
/etc/xdg/autostartscheint eine systemweite Datei zu sein, die nicht benutzerspezifisch ist.
Mike Rowave

Für spätere Versionen von Ubuntu siehe askubuntu.com/questions/159887/…
TooTone

8

Erstellen Sie daher, wie von nodiscc vorgeschlagen, einen Desktop- Starter : ~ / .config / autostart / script.desktop mit folgendem Inhalt:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

Dann erstelle das Autostart-Skript: ~ / bin / autostart mit deinem Bash-Inhalt:

#!/bin/bash
# Execute bash script below

Stellen Sie sicher, dass ~ / bin / autostart ausführbar ist


5

Sie können eine Zeile in crontab hinzufügen -

crontab -e

Fügen Sie dann diese Zeile zu der Datei hinzu, die sich öffnet:

@reboot /path/to/your/cool/script

Dadurch wird das Skript beim Neustart ausgeführt. Weitere Details finden Sie unterman crontab


Ich weiß nicht warum, aber ich kann keine .sh-Dateien auf "Anwendungen starten" ausführen. Daher ist cron
Albert Català


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.