Убивание нескольких сеансов экрана 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) 

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

3 Solutions collect form web for “Убивание нескольких сеансов экрана GNU с тем же именем”

Если других сеансов сеанса нет, вы можете использовать «жесткий» способ и просто 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 
  • Почему я не могу использовать `kill $!` С расширением параметра в Bash, когда самый последний процесс «уведомлять-отправлять»?
  • Как убить два или несколько процессов с помощью одной команды kill?
  • Закрыть / убить / скрыть одно окно терминала в bash on 'process complete'
  • Что может произойти между pidof и kill, чтобы вызвать «нет такого процесса»?
  • Являются ли убийственные процессы, созданные при безопасном запуске?
  • как выйти из команды iostat на unix?
  • bash + как хранить скрипты оболочки
  • Команда quit слабее, чем windowkill?
  • Как создать псевдоним, чтобы убивать процессы, запущенные на порту TCP / IP?
  • Убить процесс, порожденный ssh, когда ssh умирает
  • lsf bkill все задания PEND без убийства рабочих мест RUN
  • Interesting Posts

    RSYNC через SSH в Tomato / dd-wrt

    Как создать резервную копию виртуальных дисков с помощью PlayOnLinux?

    Fedora 26 и полностью квалифицированные доменные имена?

    Невозможно удалить файлы в качестве пользователя root с использованием последовательного поперечного кабеля RS232

    Я компилирую исходный код Ubuntu в Red Hat System?

    Команда запуска приложения в определенном каталоге

    Резервная копия rsync не включает / boot и / home

    Если я вижу процесс, использующий ps, как я могу найти исполняемый файл?

    Не запускать службу при загрузке

    Кнопка мыши перестает работать с перерывами

    Почему моя мышь перестает работать в моей сессии?

    Возможны ли жесткие ссылки для каталогов в файловых системах ext2 / 3/4?

    Файл карты по URL-адресу

    Как устранить ошибку загрузки загрузочного диска сети после замены оборудования?

    Фоновые задания и задачи переднего плана всегда находятся в рабочем состоянии?

    Linux и Unix - лучшая ОС в мире.