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

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

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

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

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

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

3 ответа3

1

В баш, $! это 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

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .