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

Я хочу запустить программу с 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= ) 
  • Samba не запускается на сервере Ubuntu 16.10
  • Проблема ping из определенного интерфейса
  • Как APT справляется с разными программами с тем же именем?
  • gvfs и разрешения на удаленном внешнем USB-накопителе
  • org.eclipse.swt.SWTError: больше ручек во время работы spoon.sh в ubuntu
  • код выхода grep в ловушке, где скрипт запускается при помощи функции upstart
  • Как показать сетевые адаптеры со своей статистикой?
  • Доступ запрещен для определенного пользователя с помощью настройки учетной записи PAM
  • Проблема с мостовой сетью с VirtualBox
  • Переносная загрузочная установка Ubuntu, синхронизированная с моим основным компьютером
  • xorg.conf XkbOption игнорируется для завершения: ctrl_alt_bksp для перезапуска X
  • Linux и Unix - лучшая ОС в мире.