Was ist der beste Weg, um den Bildschirm automatisch starten zu lassen, wenn Sie eine neue Shell öffnen, sei es durch Login, xterm oder irgendetwas anderes?
Am häufigsten wird empfohlen, exec screen
die rc- oder Login- / Profildatei Ihrer regulären Shell einzufügen, aber zum Beispiel führen Login-Shells für tcsh .login last aus, während Nicht-Login-Shells .cshrc last lesen. Wenn ich exec screen
.cshrc eingebe, wird die .login-Datei nicht von Anmelde-Shells bezogen, und wenn ich sie in .login eingebe, werden Nicht-Anmelde-Shells nicht auf dem Bildschirm ausgeführt. Ich gehe davon aus, dass es ähnliche Probleme mit anderen Muscheln gibt.
unix
shell
login
gnu-screen
wfaulk
quelle
quelle
Antworten:
Ein Weg ist:
Beachten Sie, dass dies für geschrieben ist
bash
, aber auch für ähnlich sein solltecsh
. Legen Sie.cshrc
es für alle Muscheln ausgeführt werden.Ein anderer Weg: Sie können einfach als Ihre Login-Shell in sich selbst festlegen
screen
/etc/passwd
und diese Zeile an Ihre~/.screenrc
: (Fixieren Sie den Pfad natürlich.)Dies kann jedoch Programme zum Absturz bringen, die die in
/etc/passwd
für verschiedene Befehle definierte Anmeldeshell ausführen.( Bearbeiten: Vergessen Sie nicht, Bildschirm hinzuzufügen
/etc/shells
)quelle
Alte Frage, aber googeln für die gleiche Sache brachte mich hierher, also hier ist eine Antwort für alle anderen, die auf diese Seite stolpern.
Das Beste, was ich bisher gefunden habe, ist byobu, wenn deine Distribution es hat. Kommt mit einer Option zum Ausführen bei der Anmeldung und steuert mehrere Bildschirme gleichzeitig.
Sie können an einem Ort trennen und sich abmelden und sich dann an einem anderen Ort bei derselben Sitzung anmelden.
Ich finde, der Bildschirm ist großartig, um Serverprozesse auszuführen, aber byobu ist großartig für alltägliche Dinge.
quelle
Wie wäre es mit chsh:
chsh /usr/bin/screen
Dadurch wird die Standardanmeldeshell in / etc / passwd festgelegt. (Du könntest es dort auch)
quelle