Убить экран без определенного сеанса

Для создания экрана я сейчас занимаюсь:

screen -dmS screenname ./file

Это отлично работает, но убивает его удаленно:

screen -X -S screenname exit

Ответим с:

No screen session found

Это связано с тем, что на экране {session#}.{Screenname}

Это будет работать, если сделано как:

screen -X -S session#.screenname exit

Какие решения возможны? Я не совсем уверен, что вы можете получить сессию # при запуске экрана. Все это делается также удаленно.

2 ответа

Решение

Я также запускаю экраны с опцией -dmS и отправляю команды на экран с помощью команды stuff:

$ screen -dmS screenname
$ screen -ls
There is a screen on:
    22941.screenname        (Detached)
1 Socket in /var/run/screen/S-user.

$ screen -S screenname -p 0 -X stuff "exit$(printf \\r)"
$ screen -ls
No Sockets found in /var/run/screen/S-user.

$ 

более подробная информация о "вещи" находится на странице справки экрана, поиск "строка материала"

Экран -ls | grep отделен | вырезать -f1 | awk '{print $1}' | XARGS убивают

Это убьет все отключенные экраны

экран -ls | grep pts | вырезать -f1 | awk '{print $1}' | XARGS убивают

это убьет весь экран, независимо от того, подключен он или отсоединен

Другие вопросы по тегам