Узнать идентификатор экрана

Я хочу запустить программу с SSH с помощью PHP, которая работает нормально, но теперь я хочу убить экран с помощью PHP, но единственное, что я знаю, это имя экрана. Как узнать идентификатор экрана (автоматически)?

2 Solutions collect form web for “Узнать идентификатор экрана”

Вы можете использовать переменную среды $STY чтобы определить, находитесь ли вы в сеансе экрана, а также то, что имя сеанса – это то, что вы внутри.

пример

Сначала мы сидим в окне терминала, а не в сеансе экрана.

 $ echo $STY $ 

Выделите сеанс экрана:

 $ screen -ls There is a screen on: 31543.tscrn (Detached) 1 Socket in /var/run/screen/S-saml. 

Подключитесь к нему:

 $ screen -r 31543.tscrn 

Внутренняя сессия экрана:

 $ echo $STY 31543.tscrn $ 

Убивание сеанса

С именем сеанса вы можете убить его с помощью screen .

 $ screen -X -S tscrn kill 

Вы также можете использовать номер там.

 $ screen -X -S 31543 kill 

Подтвердите, что его убили:

 $ screen -ls No Sockets found in /var/run/screen/S-saml. 

Вы имеете в виду screen программу? screen -ls отобразит процессы экрана вместе со своим именем экрана, добавленным PID, из которого они запущены:

 screen -S foo screen -ls There are screens on: 8806.foo (09/08/13 20:05:22) (Attached) 

Вы можете использовать это, чтобы убить процесс:

 kill -15 $(screen -ls | grep '[0-9]*\.foo' | sed -E 's/\s+([0-9]+)\..*/\1/') 

В качестве альтернативы, если вы можете идентифицировать php-процесс с ps, то это будет идентификатор родителя, который будет экраном, и вы можете его убить. pgrep -U <myusername> -f <name> поможет найти процесс php, который вы хотите найти (обратите внимание на -f который ищет аргументы команды, а также имя команды). Возможно, вы используете более одного скрипта php, поэтому -f будет лучшим механизмом для соответствия вашему процессу. <myusername> будет вашим именем пользователя, <name> будет строкой, чтобы соответствовать процессу. Затем вы можете использовать ps -p <pid> -o ppid= чтобы получить идентификатор процесса экрана и убить его.

 kill -15 $( ps -p $(pgrep -U fooman -f foobar_process) -o ppid= ) 
  • Как я могу убить 1 окно gnome-terminal?
  • Проблемы с шрифтом для конкретного пользователя в разных приложениях
  • Проблемы с размещением объекта объекта Spamassassin после перезапуска
  • Расширяет раздел с использованием другого диска
  • Добавление задержки в сетевой интерфейс при загрузке
  • Дублирование ошибки PV в GParted при попытке удалить настройку RAID1
  • Создание брандмауэра с установленным Docker
  • Строка состояния экрана GNU - как заставить отображать имена сеансов оболочки?
  • Почему нам не нужно вводить пароль для установки программного обеспечения в магазине приложений на Deepin?
  • Как проложить 20 x / 24 подсети (вторичные) одним выстрелом в Ubuntu 14?
  • Доля (/ зеркало) всего содержимого одного сервера Ubuntu на другое
  • Подключение к серверу для удаленного доступа к компьютеру Linux через графический интерфейс
  • Linux и Unix - лучшая ОС в мире.