Dans mon tmux.conf
fichier je l'ai configuré pour ouvrir les fenêtres, les nommer, configurer les volets etc.. etc..
Cependant, un problème que j'ai est que si l'un des volets lance une commande, disons ls
, puis le volet se ferme une fois la commande terminée (instantanément). Existe-t-il un moyen d'empêcher ce comportement ? Ou le faire tomber dans un shell normal après la fin d'une commande ?
Je suppose que je dois démarrer un shell -> exécuter la commande lorsque le volet se lance, mais je serai damné si je peux comprendre comment. J'ai cherché un peu sur Google pour ce problème, mais je n'ai pas réussi.
Réponse acceptée :
Vous avez plusieurs options.
-
Au lieu d'exécuter
ls
dans votre fenêtre, exécutez un shell, puis envoyez les touches du shell à exécuter :tmux start-server tmux new-session -d -s session tmux new-window -t session:1 tmux send-keys -t session:1 ls C-m
-
Vous pouvez lancer une séquence de commandes de manière à vous retrouver avec un shell bash après l'exécution de vos autres commandes :
tmux start-server tmux new-session -d tmux new-window 'ls;bash -i'
-
Voir la réponse de jasonwryan pour plus de détails sur le
remain-on-exit
option pour garder les volets actifs après la fin de leur processus afin que vous puissiez revoir la sortie. -
Si la sortie d'une commande valait la peine d'être vue une fois, cela pourrait valoir la peine d'être actualisé. Si vous surveillez la sortie de quelque chose, vous pouvez
watch
pour obtenir périodiquement de nouvelles sorties. Cela devrait bien fonctionner avec les volets danstmux
:tmux start-server tmux new-session -d tmux new-window 'watch -n 60 ls'