уничтожьте экран (но не все экраны)

Пойдите получают последний ISO из Ubuntu.com (если Вы не имеете потребность в мадам больше чем на 4 ГБ, получаете 32-разрядную версию), распакуйте его на карту памяти, затем устанавливают далеко (хорошо перезагружают Ваш ПК!) - просто удостоверяются, что существует достаточно пространства для Вашей установки Ubuntu.

Одно из начал процесса установки является "Волшебством Раздела"-dual-boot-builder-on-steroids.... Высмеивает, как мы раньше делали это в 'былые времена'!!

Удачи.

Mike

19
задан 23 May 2017 в 19:40
6 ответов

Из страницы справочника:

   -X   Send the specified command to a running screen  session.  You  can
        use  the  -d or -r option to tell screen to look only for attached
        or detached screen sessions. Note that this command  doesn't  work
        if the session is password protected.

Можно сделать:

        screen -X -S <sessionid> kill
19
ответ дан 2 December 2019 в 20:17

Если Вы делаете a screen -list, Вы заметите, что каждый псевдоним начинается с числа, которое является PID экрана:

 $ screen -list
There are screens on:
        12281.pts-1.jonah       (12/21/2009 07:53:19 PM)        (Attached)
        10455.pts-1.jonah       (12/19/2009 10:55:25 AM)        (Detached)
2 Sockets in /var/run/screen/S-raphink.

Оттуда, просто отправьте Сигнал уничтожения в этот определенный PID:

$ kill 12281

и это уничтожит определенный экран.

9
ответ дан 2 December 2019 в 20:17
  • 1
    этот won' t работают, потому что я выполняю его из сценария удара, и я скорее не должен вытянуть PID с экрана - список, который соответствует корректному экрану... defraagh' s отвечают выше обработанного как очарование. Спасибо Вы. –  BassKozz 21 December 2009 в 21:03
  • 2
    Хорошо, хороший, что defraagh имел идеальное решение для него. –  ℝaphink 21 December 2009 в 22:05

решение defraagh не работает на меня, однако я могу уничтожить экранную сессию с помощью идеи Raphink:

экран - список получает идентификатор процесса

уничтожьте-9 PROCESSID

экран - вытирает SESSIONID

1
ответ дан 2 December 2019 в 20:17

Я занимался этим следующим образом:

process=$(screen -ls | grep screen1)
kill $(echo $process | cut -f1 -d'.')
exit

Объяснение заключается в том, что вы берете вывод экрана -ls и с помощью grep находите интересующий вас экран, затем присваиваете эту строку процессу переменной -.

Поскольку вывод с экрана screen -ls - это всегда PID, за которым следует период, который можно использовать cut, чтобы избавиться от периода и всего, что после него. В приведенном примере мы заключили его в круглые скобки и скормили команде kill, хотя можно было бы сделать это линейно, что могло бы включать в себя запись в временный файл и чтение из него.

Нужно убедиться, что ваше имя экрана уникально и что grep возвращает только имя экрана, который вы хотите убить.

.
0
ответ дан 2 December 2019 в 20:17

Вы открываете новое окно с помощью

Ctrl A + C

Вы закрываете окно с помощью

Ctrl + D

или выходите из команды в окне

0
ответ дан 2 December 2019 в 20:17

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

screen -ls  | egrep "^\s*[0-9]+.ScreenName" | awk -F "." '{print $1}' | xargs kill
  • Команда screen -ls печатает экраны с их номерами процесса. Например, 4773.test - это экран с номером процесса 4773 и именем test . Пример вывода:

     6322.ss (23.05.2018 10:39:08 AM) (Отсоединено)
    6305.sc (23.05.2018 10:38:40) (Отсоединено)
    6265.ScreenName (23.05.2018 10:37:59) (Отсоединено)
    6249.ScreenName (23.05.2018 10:37:50) (Отсоединено)
    6236.scc (23.05.2018 10:37:42) (Отсоединено)
     
  • Команда egrep фильтрует пример текста, отправленного по конвейерной линии | .

  • Команда awk -F "." '{print $ 1}' ​​извлекает первый столбец каждой строки. Разделитель между столбцами определяется как точка (.) параметром -F
  • Наконец, команда xargs kill завершит все процессы, номера которых отправлены через канал |. xargs используется, когда мы хотим выполнить команду для каждого из входов.
1
ответ дан 2 December 2019 в 20:17

Теги

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