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-terminal
ist 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-terminal
sobald Sie sich anmelden.
Abgesehen davon gnome-terminal
ist 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.