Warum funktioniert mein Startskript zum Öffnen eines Terminals nicht?

Warum funktioniert mein Startskript zum Öffnen eines Terminals nicht?

Nur um mit der Skripterstellung herumzuspielen, habe ich eines geschrieben, das (glaube ich?) beim Start ein Terminal öffnen soll:

#!/bin/bash
#start terminal at startup
#/usr/bin/gnome-terminal

ich habe es in das Verzeichnis /etc/init.d gelegt und dann Folgendes ausgeführt

update-rc.d myscript defaults

aber wenn ich meinen Computer neu starte, passiert absolut nichts. Warum?

Antwort1

Kurze Antwort:

gnome-terminalist eine GUI-Anwendung. Daher kann sie nur ausgeführt werdenals Benutzer. Während Sie versuchen, es auszuführen, ist (noch) kein Benutzer angemeldet. Platzieren Sie den (Befehl zum Ausführen des) Skripts stattdessen in Startanwendungen.

Das tust du nichtbrauchenein SkriptüberhauptSie können den Befehl dann jedoch direkt zu den Startanwendungen hinzufügen.

Dies wird gestartet, gnome-terminalsobald Sie sich anmelden.

Abgesehen davon gnome-terminalist Ihr auszuführender Befehl nicht korrekt. Sollte lauten /usr/bin/gnome-terminal(wie von @steeldriver erwähnt, danke) oder, da es in ist $PATH, einfach gnome-terminal.

Antwort2

Der Hauptfehler in Ihrem Skript besteht darin, dass Sie in Ihrer dritten Anweisung den Befehl zum Öffnen des Terminals auskommentiert haben. Bitte entfernen Sie das "#" aus der dritten Anweisung. In der Zwischenzeit können Sie einfach verwendenGnome-Terminalum es zu aktivieren, aber es sollte als Benutzer selbst ausgeführt werden. Das bedeutet, dass das Hinzufügen zu update-rc auch nicht funktioniert. Wenn Sie eher auf Terminalmethoden setzen, können Sie Ihr Skript in crontab hinzufügen und es mitNeustarteinschränken. Dadurch wird Ihr Skript beim Start ausgeführt. Ich fasse also wie folgt zusammen:
Ihre Datei mit dem Namen script.sh:

#!/bin/bash
#start terminal at startup
gnome-terminal

Machen Sie das Skript mit dem folgenden Befehl für den Benutzer ausführbar.

chmod u+x /path/to/script.sh

Öffnen Sie nun das Terminal und bearbeiten Sie die Crontab Ihres Benutzers wie folgt:

crontab -e -u username

Fügen Sie die folgende Anweisung am Ende der Datei hinzu, nachdem Sie die erforderlichen Änderungen entsprechend vorgenommen haben.

@reboot /path/to/script.sh

Jetzt neu starten. Das war‘s.

verwandte Informationen