
Я случайно создал более 1000 экранов. Как мне убить их все одной командой? (Или несколькими)
решение1
Вы можете использовать :
pkill screen
Или
killall screen
В OSX процесс называется SCREEN заглавными буквами. Поэтому используйте:
pkill SCREEN
Или
killall SCREEN
решение2
Если экраны не работают, используйте:
screen -wipe
решение3
Недавно начал знакомиться с 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
.
решение4
for scr in $(screen -ls | awk '{print $1}'); do screen -S $scr -X kill; done