Обычно мне нужно запустить конкретный сеанс экрана с 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, выполнять некоторые действия по устранению неполадок, а затем вручную повторно запускать команду. У Screen не будет проблем с запуском этих команд, но как только они будут выполнены, screen убьет это окно / tty. (Чтобы попробовать это, просто укажите что-то вроде 'top' в качестве команды для запуска. Когда вы выйдете из top, перечислите свои экранные окна с помощью Ctrl-A ". Вы увидите, что ваш верхний tty полностью исчез)
Итак, мои вопросы по порядку: - Поддерживает ли экран собственный способ получения обычного приглашения оболочки после завершения команды в том же TTY? - Если да, то как? - Если нет (что, по-моему, так), каков самый чистый способ вызвать оболочку из конфигурации экрана после завершения указанной команды, чтобы вы по-прежнему получали TTY и приглашение оболочки?
Спасибо!!!
Простое решение - запустить вашу команду, а затем оболочку как команду оболочки, например:
screen -t title bash -c 'top; exec bash -i'