Убивание нескольких сеансов экрана 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 
  • Есть ли способ сказать, был ли сценарий оболочки убит сигналом 9
  • убить несколько процессов с помощью awk-инструментов
  • Создание задачи Cron для уничтожения остановленных / неудачных прогонов в системе
  • Пропустить флаги для xargs
  • Почему командный игрок снова начинается после того, как его убили
  • Экспортировать командную строку без оценки вывода?
  • Поиск идентификатора процесса и его уничтожение
  • убить невосприимчивый процесс
  • Как убить два или несколько процессов с помощью одной команды kill?
  • pgrep и pkill альтернативы на mac os x?
  • Как убить беглого кота?
  • Как systemd выжить в kill -9?
  • Interesting Posts

    Как сделать сопоставления устройств после перезагрузки?

    Переход на летнее время на серверах Linux

    Сценарий, использующий fifos, не генерирующий выход при обработке из stdin

    Что такое поле TryExec в файлах .desktop?

    Пользователь без полномочий root не может изменять пароль Samba

    ldconfig не может ссылаться на определенные файлы

    Как обновить три файла CSV на основе четвертого файла

    Загрузка «Linux from Scratch» не вызывает # подсказки

    Почему размер текущего устройства больше, чем текущий размер тома после изменения размера раздела ntfs?

    netcat в сценарии оболочки, дающий недействительное соединение

    Список подписчиков-подписчиков Red Hat: потребляется и устанавливается, дает различную информацию

    Как реализовать «генераторы», такие как $ RANDOM?

    Как продолжить анимацию в сценарии Плимута?

    GRUB не может найти существующий файл?

    Настроить карту устройства для изменения размера сектора?

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