Может ли экран GNU оставить вас в командной строке после команды вместо выхода из TTY?
Мне обычно нужно запустить определенный сеанс экрана с 9-10 окнами, большинство из которых должны запускать либо интерактивную команду, либо просто команду типа установки.
Я делаю это через screen -c <config-that-specifies-ttys-and-commands>
Псевдокод для моего управления tty / командами выглядит так:
screen -t foo_title <interactive_cmd_to_start_automatically>
screen -t bar_title <a_different_cmd_to_launchh>
... etc ...
Проблема, с которой я сталкиваюсь, заключается в том, что мне периодически нужно останавливать эти интерактивные команды, бросать оболочку в том же самом TTY, выполнять некоторые действия по устранению неполадок, а затем вручную перезапускать команду. Экран не будет иметь проблем с выполнением этих команд, но как только они завершатся, экран убивает это окно / tty. (Чтобы попробовать это, просто укажите что-то вроде 'top' в качестве команды для запуска. Когда вы выходите из top, выведите список окон на экране с помощью Ctrl-A ". Вы увидите, что ваш top tty полностью исчез)
Итак, мои вопросы по порядку: - Поддерживает ли screen собственный способ получения обычного приглашения оболочки после завершения команды в том же TTY? - Если так, то как? - Если нет (что, я думаю, имеет место), каков самый чистый способ вызова оболочки из конфигурации экрана после того, как указанная команда завершится, чтобы вы все равно получили TTY и приглашение оболочки?
Спасибо!!!
1 ответ
Простое решение - запустить вашу команду, а затем оболочку, как команду оболочки, например:
screen -t title bash -c 'top; exec bash -i'