Как я могу проверить PID X-сервера в другом виртуальном терминале?

1462
user19489

Я пытаюсь открыть программу на голом X-сервере в другом виртуальном терминале. Я использую Ubuntu 9.10.

Команда, которую я использую, такова.

openvt -f -s -- `X :2 & '/path/to/program' -display :2`; 

Теперь, когда программа закрывается, я хочу, чтобы X-сервер тоже был убит.

Поэтому мой вопрос заключается в следующем: как я могу сохранить PID нового X-сервера (X: 2), чтобы потом его убить?

Это будет использоваться в обычном сценарии оболочки.

0

3 ответа на вопрос

1
James Polley

В bash $!есть the process ID of the most recently executed back-ground (asynchronous) command.

Sombrero:Documents polleyj$ xterm & [1] 41316 Sombrero:Documents polleyj$ KILLPID=$! Sombrero:Documents polleyj$ echo $KILLPID 41316 Sombrero:Documents polleyj$ kill $KILLPID Sombrero:Documents polleyj$ [1]+ Killed xterm Sombrero:Documents polleyj$ 
1
ℝaphink

Вместо использования openvt, вы можете использовать Xephyr, чтобы открыть вложенную X-сессию. Это облегчило бы управление этим впоследствии.

Используйте sudo apt-get install xserver-xephyrдля его установки.

Соедините это с использованием, $!чтобы получить идентификатор процесса, как предложил Джеймс.

0
user19489

Что я сделал, так это сохранил pgrep -f 'X: 2' в переменной mypid. Тогда я просто убил $ mypid ..

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