Wie kann ich die PID eines X-Servers in einem anderen virtuellen Terminal überprüfen?

1548
user19489

Ich versuche, ein Programm in einem nackten X-Server auf einem anderen virtuellen Terminal zu öffnen. Ich benutze Ubuntu 9.10.

Der Befehl, den ich verwende, ist dieser.

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

Wenn das Programm jetzt heruntergefahren wird, möchte ich, dass der X-Server ebenfalls beendet wird.

Meine Frage ist also: Wie kann ich die PID des neuen X-Servers (X: 2) speichern, um ihn später abzubrechen?

Es wird in einem normalen Shell-Skript verwendet.

0

3 Antworten auf die Frage

1
James Polley

In Bash $!ist 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

Anstelle von openvt können Sie Xephyr verwenden, um eine verschachtelte X-Sitzung zu öffnen. Das würde es später einfacher machen.

Verwenden Sie es sudo apt-get install xserver-xephyr, um es zu installieren.

Verbinden Sie das mit der Verwendung $!der Prozess-ID, wie James vorgeschlagen hat.

0
user19489

Was ich tat, war, pgrep -f 'X: 2' in einem variablen Mypid zu speichern. Dann habe ich einfach $ mypid getötet ..