Я случайно создал более 1000 экранов. Как мне убить их всех одной командой? (Или несколько)
linux
bash
gnu-screen
kill
BrainStone
источник
источник
screen -ls | grep Detached | cut -d. -f1 | awk '{print $1}' | xargs kill
screen -ls | grep "<name>" | cut -d. -f1 | tr --delete "\t" | xargs kill -9; screen -wipe; screen -ls;
Ответы:
Вы можете использовать :
Или же
В OSX процесс называется SCREEN во всех заглавных буквах. Итак, используйте:
Или же
источник
Top
Если экраны не работают, используйте:
источник
источник
Недавно начали знакомиться с awk, я собрал это, и это послужило своей цели. Я отправил это, так как это довольно легко понять.
screen -ls | grep '(Detached)' | awk 'sys {screen -S $1 -X quit}'
Где
screen -ls
перечислены все текущие экраны.grep 'pattern'
отфильтровывает все соответствующие строки. Затем мы можем получить дескриптор для всех отключенных экранов, и с помощьюawk sys {command}
мы можем скопировать и вставить команду и выполнить ееsys
,$1
ссылаясь на первый аргумент, полученный awk. Наконец мы выполняем команду quit с помощьюscreen -X quit
.источник
screen -ls | grep '(Detached)' | awk '{print $1}' | xargs -I % -t screen -X -S % quit
работал лучше для меня.Я немного озадачен тем, как вам удалось создать 1000 «экранов». Возможно, вы имели в виду 1000 экранных окон (1000 различных окон терминала за один сеанс экрана)?
Если вы имели в виду 1000 окон в рамках одного сеанса экрана, то более элегантным решением было бы выйти из экрана с помощью команды
C-a \
(ctrl-a, а затем \).источник
screen -m sleep 100000
. Это произошло, и я не заметил, пока он не создал более 1000 сеансов экрана.Следующая команда завершит все неактивные экраны:
источник
источник