Linux-Startskripte

549
Y. Pei

Hintergrund: Ich verwende einen Arch Linux-Build auf meinem Laptop. Das System sitzt seit drei Jahren dort. Ich habe ein paar Mal neu installiert und die alten dot-Dateien in meinem Home-Verzeichnis während der Neuinstallationen übernommen. Dies macht es mir fast unmöglich, mir alle Konfigurationen mitzuteilen, die ich gemacht habe. Ich benutze Openbox als WM und habe darüber hinaus noch keine Desktop-Umgebung.

Nun möchte ich etwas einfaches:

Ich möchte, dass der Computer tint2beim Start ausgeführt wird. Um dies zu tun, habe ich eine Suche durchgeführt und gelernt, ~/.xinitrcwann immer ich startx ausführt, und ~/.config/openbox/autostartwird beim Ausführen von openbox ausgeführt.

Also habe ich meine erste .xinitrcin nur zwei Zeilen gemacht:

exec openbox tint2 & 

Dann lief pkill xund startxwieder Openbox wie immer, aber nicht tint2.

Warum lassen Sie uns das dann einfach versuchen autostart? Ich habe einen Einzeiler geschriebenautostart

tint2 & 

X neu starten, es ist nichts passiert.

Ich hatte auch chmod +xdas Autostart-Skript und versuchte, die Zeile in zu ändern

(sleep 2s && tint2) & 

openbox lehnte es jedoch ab, die Taskleiste von tint2 beim Start anzuzeigen.

Wenn ich ein Autostart-Skript in einem Terminalfenster ausführe, funktioniert es.

Meine Vermutung ist, dass stattdessen einige andere Konfigurationsdateien / Skripte ausgeführt werden. Gibt es eine Möglichkeit, herauszufinden, um welche Dateien es sich handelt? Oder einfach, warum funktioniert das Skript xinitrc oder autostart nicht?

0

2 Antworten auf die Frage

1
Bolwerk

Ein traditioneller Weg, eine grobe .xinitrc zu machen, besteht darin, sie so strukturiert zu haben

Prozess1 &
Prozess2 &
Prozess3 &
...
Lastprozess

Der letzte Prozess ohne das kaufmännische Und-Zeichen ist der "magische Prozess". Wenn Sie ihn schließen, wird X geschlossen. Traditionell war der magische Prozess in twm ein Xterm. Wenn der Prozess ohne kaufmännisches Und endet, wird X geschlossen. Wenn Sie den letzten Prozess ( process4 &) im Hintergrund ausführen, wird X geschlossen. Ich denke, dein Beispiel sollte so aussehen:

tint2 &
exec Openbox-Sitzung

Zumindest in manchen Fällen scheint es mir egal zu sein, das Et-Zeichen wegzulassen. Ich mache es gelegentlich aus Versehen ohne negative Auswirkungen.

Stellen Sie auch sicher, dass Sie dies tun chmod u+x .xinitrc

Vielen Dank für Ihre Antwort, aber die Regel sagt "Akzeptiere eine Antwort, wenn das Problem gelöst wurde", also akzeptierte ich meine eigene Antwort. Y. Pei vor 9 Jahren 0
0
Y. Pei

Ich habe das Problem gelöst, indem ich das ersetzt habe

exec openbox 

mit

openbox-session 

in .xinitrc. Stellt sich heraus das autostartnur mit läuft openbox-session.