Назад | Перейти на главную страницу

Какая команда выполняется внутри «экрана»?

Я вошел в систему на сервере. Затем выполнил команду "screen -list", которая дает следующий результат:

Есть экран на:
11048.pts-0.devops (Отдельно)
27563.pst-0.devops (Отдельно)
1 сокет в / var / run / screen / S-root.

Теперь мне нужно завершить один из сеансов экрана, используя "screen -S -X quit". Перед завершением я хочу знать, какая команда выполняется на экране. Например, я запустил ./startup.sh (для tomcat) на экране с идентификатором «11048», но забыл об этом. Есть ли способ узнать, какая команда выполняется на этом экране с идентификатором 11048?

заранее спасибо

Синтаксис открытия экрана:

screen -r <pid>

так что первый экран будет «screen -r 11048» - чтобы снова отсоединить экран, введите ctrl + a d (как при удерживании ctrl при нажатии a, затем отпустите, затем d). Находясь на экране, вы также можете использовать ctrl + a "для перехода между экранами. Также вы должны знать, что если вы просто убьете 11048, процесс, запущенный на экране 11048, продолжит работу после выхода из экрана.

---- редактировать ----

О, я понимаю, о чем ты. Попробуйте отследить дочерние процессы:

seqb [~]# ps -ef | grep SCREEN
505       5835     1  0 Jun30 ?        00:00:01 SCREEN
505      19501     1  0 Feb27 ?        00:00:00 SCREEN
505      21852     1  0 Mar02 ?        00:00:07 SCREEN
root     22035 22006  0 19:05 pts/2    00:00:00 grep SCREEN
root     29668     1  0 Jul08 ?        00:00:00 SCREEN
seqb [~]# ps -ef | grep 29668
root     22038 22006  0 19:06 pts/2    00:00:00 grep 29668
root     29668     1  0 Jul08 ?        00:00:00 SCREEN
root     29669 29668  0 Jul08 pts/0    00:00:00 /bin/bash
seqb [~]# ps -ef | grep 29669
root     22047 29669  0 19:08 pts/0    00:00:00 sleep 600
root     22049 22006  0 19:08 pts/2    00:00:00 grep 29669
root     29669 29668  0 Jul08 pts/0    00:00:00 /bin/bash

поэтому, когда вы ищете pid экрана в ps -ef (29668), вы также получите процесс, который считает SCREEN своим родительским. Обычно это будет bash. Итак, когда вы ищете pid bash, вы обнаружите, что процесс выполняется в bash, в данном случае "sleep 600". Запустите ps -ef | голова -1, если это не совсем понятно.

Также есть ярлык - screen хранит в памяти последние 500 строк. Введите ctrl + a [, а затем клавишу вверх. Вы можете перейти к началу вывода, если имеется менее 500 строк вывода, вы можете увидеть, какая команда выполняется.