Как я уничтожаю все экраны?

Существует два подхода, которые можно использовать. Для любого подхода Вы должны сначала смонтировать свой раздел жесткого диска везде, где (например, под / HD) и также добавляют его к/etc/fstab, затем создают домой, var и tmp в монтировании.

  1. Используйте символьные ссылки. Затем создайте символьные ссылки из / домой к/hd/home и т.д.

  2. Вместо символьных ссылок использование связывает, монтируется. Синтаксис mount --bind /hd/home /home. Вы банка (должна) также поместить это в fstab, использование, 'связываете' как fstype.

Основной способ заставить это устанавливать как этот состоит в том, чтобы настроить целевую файловую систему вручную прежде, чем запустить фактическую установку. Я знаю, что ее достаточно легкое с debian-установщиком использует установщик, чтобы создать Ваши разделы, смонтироваться, и затем переключаться на другой терминал (скажите, alt-f2), CD в цель/, и создайте свои символьные ссылки (или свяжите, монтируется). Затем переключитесь назад на alt-f1 и продолжите установку. Ubuntu (и я принимаю Kubuntu), установщики основаны на debian-установщике, таким образом, я принимаю подобный, возможно.

77
11.10.2013, 00:57
6 ответов

Можно использовать:

pkill screen

Или

killall screen

В OSX процесс называют ЭКРАНОМ всеми заглавными буквами. Так, используйте:

pkill SCREEN

Или

killall SCREEN
99
27.01.2020, 19:31
  • 1
    Не рекомендуется использовать SIGKILL в этом случае. SIGTERM был бы намного лучшим выбором. –  Marco 11.10.2013, 01:31
  • 2
    Привет, Rahul Patil. почему экран не перечислен в Top –  user15964 30.04.2016, 04:03
  • 3
    Что, если у меня нет полномочий? Я должен вручную войти и выйти из всех экранов индивидуально? большое спасибо –  hipoglucido 21.06.2017, 18:39

Надо мной немного ломают голову, как Вам удалось создать 1 000 "экранов". Вы, возможно, имели в виду 1 000 экранных окон (1 000 различных окон терминала в рамках сессии одного экрана)?

Если бы Вы имели в виду 1 000 окон в рамках сессии одного экрана, то более изящное решение состояло бы в том, чтобы выйти из экрана с помощью команды C-a \ (ctrl-a, сопровождаемый \).

2
27.01.2020, 19:31
  • 1
    Попытайтесь выполнить экран 1000x в экране. Что происходит? Вы получаете 1 000 экранных окон. Да, правильно, экран разумно и милостиво не порождает 1 000 экранных сессий. Таким образом, если OP уже запустил экран, должно быть намного легче случайно запустить 1 000 экранных окон, чем запустить 1 000 экранных сессий. –  Railgun2 11.10.2013, 04:44
  • 2
    Странный, но комментарий я отвечал на, кажется, исчез. Так или иначе я позволяю вышеупомянутому комментарию обозначать запись. –  Railgun2 11.10.2013, 04:49
  • 3
    Хорошо это на самом деле довольно просто. Просто сделайте бесконечный цикл (случайно) и поместите что-то вроде этого там screen -m sleep 100000. Это произошло, и я не заметил, пока это уже не создало более чем 1 000 экранных сессий. –  BrainStone 11.10.2013, 13:14

Если экраны не работают, используйте:

screen -wipe
13
27.01.2020, 19:31
str=$(screen -ls)  

array=$(echo $str|tr "." "\n")  

for V in $array  
do  
if [ $V -gt 0  ]  
        then screen -S $V -X quit  
fi  
done 
6
27.01.2020, 19:31

Недавно начал знакомиться с 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.

12
27.01.2020, 19:31

Следующая команда закроет все неактивные экраны:

perl -e 'while (map { kill 9, [split /\./]->[0] } grep { /Detached/ } split /\n/, qx{screen -ls}) { sleep 1 } exec qw(screen -wipe)'
1
27.01.2020, 19:31

Теги

Похожие вопросы