Intereting Posts
Nano vs Vim или Vi Ubuntu под VirtualBox 4.3.12 r93733 работает медленно на Windows7 с AVG бесплатно 2011 Как добавить другой домен на мой chrooted named server Ищите утилиту POSIX, чтобы проверить, является ли filename символической ссылкой Две версии перезагрузки? После обновления и обновления apt-get мне нужно перекомпилировать и переустановить программное обеспечение, которое я не установил с помощью apt-get install? Как я могу безопасно подключиться к своему ящику Linux через Интернет? Почему у меня есть 4 вызова вместо 3 при использовании этого find -execdir {} + (plus)? Должен ли я установить пользовательский webapp в / opt или / srv? Добавление Ctrl-L в качестве «чистой» горячей клавиши в ksh OpenBSD В разделе меню панели инструментов LXDE доступны категории и элементы приложения? Два разных списка установленных пакетов Переключение между раскладкой клавиатуры на основе входного события setuid и setgid путаница Какую часть chmod 770 утра я недопонимаю?

Убивание нескольких сеансов экрана GNU с тем же именем

Иногда мой скрипт вылетает, и создается несколько сеансов с одним и тем же именем. Есть ли способ убить все это с помощью этого имени в одной команде?

Rx:/scripts# screen -S haydoz-script -X quit There are several suitable screens on: 13372.haydoz-script (09/10/11 07:44:05) (Detached) 12287.haydoz-script (09/10/11 07:30:45) (Detached) 12230.haydoz-script (09/10/11 07:17:42) (Detached) 7824.haydoz-script (09/09/11 11:42:26) (Detached) 7764.haydoz-script (09/09/11 11:35:40) (Detached) 15753.haydoz-script (09/04/11 15:00:27) (Detached) 15744.haydoz-script (09/04/11 15:00:26) (Detached) 

Рядом с ними есть другие экраны, которые я не хочу убивать.

Если других сеансов сеанса нет, вы можете использовать «жесткий» способ и просто kill их с помощью killall screen .

Если вы хотите быть хорошим, вы можете перебирать список сеансов экрана и убивать их один за другим:

 # screen -S foo && screen -S foo [detached] [detached] # screen -ls There are screens on: 8350.foo (Detached) 8292.foo (Detached) 2 Sockets in /tmp/screens/S-joschi. # This is the interesting line. Just replace "foo" with the name of your session(s) # for session in $(screen -ls | grep -o '[0-9]*\.foo'); do screen -S "${session}" -X quit; done # screen -ls No Sockets found in /tmp/screens/S-joschi. 

screen -ls "$SESSION_NAME" перечисляет полные имена совпадающих сеансов на вкладках с отступом. Таким образом, вы можете перебирать эти строки, извлекать полные имена и вызывать команду quit для каждого соответствующего имени.

 SESSION_NAME='haydoz-script' screen -ls "$SESSION_NAME" | ( IFS=$(printf '\t'); sed "s/^$IFS//" | while read -r name stuff; do screen -S "$name" -X quit done ) 

Присоединитесь к экрану, а затем запустите другую команду экрана:

 screen -x "Name" -x -X kill