Я в настоящее время настраиваю сервер и существуют различные программы, которые я хочу запустить в фоновом режиме, в то время как все еще способность посмотреть на консоль каждой программы по требованию.
Таким образом, я пытаюсь автоматически создать экран для каждой программы и запустить программу в созданном экране, но команды в экране, кажется, не работают.
Я создаю экран с screen -dmS screen1
и попытка выполнить команду с screen -S screen1 -X cmd
, но экран ничего не делает.
Например, если я работаю screen -S screen1 -X touch /home/user/test
, файл не создается.
Проблема автоматического запуска разрешена
Необходимо отправить , входят для этого для работы. Для этого нажмите ctrl + v и затем введите , Входят . Например, Ваша команда была бы похожа на это:
screen -S screen1 -X stuff 'touch /home/user/test^M'
Имеют в виду, что это просто 'наполнит' текст в Ваше первое окно, которое перестанет работать, если уже будет некоторый 'текст' в консоли.
Смотрят на FAQ экрана GNU: Как отправить, команда к окну в выполнении скрывают сессию от командной строки для дополнительных примеров.
Один способ сделать так при экранном запуске использует .screenrc
с чем-то как:
# Start some screens by default
screen -t touch -L /bin/sh -c "touch ~/test3;bash"
screen -t mc -L /bin/sh -c "mc;bash"