Quelle est la meilleure façon d'afficher automatiquement l'écran lorsque vous ouvrez un nouveau shell, que ce soit par login, xterm ou autre chose?
Je vois que la recommandation la plus courante est de mettre l' exec screen
dans le fichier rc ou login / profil de votre shell régulier, mais pour, par exemple, tcsh, les shells de connexion s'exécutent .login en dernier, tandis que les shells non-connectés lisent .cshrc last. Si je place l' exec screen
dans .cshrc, les shells de connexion ne seront pas source du fichier .login, et si je l'ai mis dans .login, les shells non-login ne fonctionneront pas sur l'écran. Je présume qu'il existe des problèmes similaires avec d'autres shells.
L'une des façons est:
# if $STY is not set... if [ -z "$STY" ]; then exec screen -ARR fi
Notez que ceci est écrit pour bash
, mais devrait être similaire pour csh
. Mettez-le sur .cshrc
pour être exécuté pour tous les shells.
Une autre façon: vous pouvez simplement configurer l' screen
comme votre shell de connexion dans /etc/passwd
lui-même, et mettre cette ligne sur votre ~/.screenrc
: (Fixez le chemin, bien sur.)
Defshell / bin / csh
Mais cela peut interrompre les programmes qui exécutent l'arborescence de connexion définie dans /etc/passwd
pour diverses commandes.
( Modifier: N'oubliez pas d'ajouter l'écran à /etc/shells
)
Une ancienne question, mais le googling pour la même chose m'a amené ici, alors voici une réponse pour toute autre personne qui trébuche sur cette page.
La meilleure chose que j'ai trouvé jusqu'à présent est byobu si votre distro l'a. Livré avec une option à exécuter à la connexion et contrôle plusieurs écrans à la fois.
Vous pouvez vous déconnecter et vous déconnecter en un seul endroit, puis vous connecter à la même session à un autre endroit.
Je trouve que l'écran est génial à utiliser pour exécuter les processus du serveur, mais byobu est idéal pour les choses de tous les jours.
Que diriez-vous d'utiliser chsh:
chsh /usr/bin/screen
Cela définit le shell de connexion par défaut dans / etc / passwd. (Vous pourriez le faire là aussi)