Назад | Перейти на главную страницу

Завершение сеанса экрана и запуск нового, cron

У меня есть сеанс экрана, который я запускаю с несколькими окнами, которые запускают пару приложений, которые запускают консоль в окне терминала (поэтому я запускаю их на экране).

Я хотел бы убить все окна, а затем добавить обратно два новых, которые, по сути, просто повторно запустили команду, чтобы снова запустить программу.

Поскольку это может немного сбивать с толку, вот что я бы сделал, если бы просто пытался сделать это вручную в командной строке:

$ screen -x programs

$ (Hit Control-a + \ )

$ (Hit Control-a + c)

$ program1 args0 args1 #running first program again

$ (Hit Control-a + c)

$ program2 args0 args1 #running second program

Технически мне даже не нужно убивать существующие окна, просто остановите интерактивное окно. Обычно я делаю это, когда в окне просто нажимаю CTRL-D, и программа перестает работать. Потом просто снова запускаю программу.

Я знаю, что есть команды, с помощью которых я могу присоединиться к существующему сеансу экрана по имени, я просто понятия не имею, как я могу использовать это, чтобы отправить эквивалент CTRL + D, а затем отправить ему другую команду.

попробуйте это, чтобы завершить сеанс экрана.

screen -dr your_session_name -X quit

Примечание:

В разных системах Linux / Unix есть разные способы обработки длительных процессов. Если ваша система контролирует процессы с помощью systemd, а его версия выше 230, попробуйте прочитать последнюю версию руководства systemd.