Убить экран без определенного сеанса
Для создания экрана я сейчас занимаюсь:
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 убивают
это убьет весь экран, независимо от того, подключен он или отсоединен