Angesichts der von erstellten IDs wmctrl -l
möchte ich den mit der Fenster-ID verknüpften Prozess beenden können.
Wie würden Sie vorschlagen, es zu tun? '
command-line
bash
batch
wmctrl
user123456
quelle
quelle
Wenn Sie
wmctrl -lp
die PIDs verwenden, befinden Sie sich in der dritten Spalte.Für eine bestimmte Fenster-ID können Sie verwenden
(Ersetzen Sie WID durch Ihre Fenster-ID)
quelle
col3
.wmctrl
hat tatsächlich ein anderes Flag-p
zum Auflisten der PID.Sobald Sie dies wissen, ist es eine triviale Übung, die PID dieses Fensters zu extrahieren und an sie weiterzugeben
kill
quelle
Sie können auch verwenden
xkill -id [id]
. Das Dienstprogramm xkill funktioniert anders als die anderen Antworten. Anstatt das Fenster zu schließen oder den Prozess direkt abzubrechen , weist es den X-Server an, den Client, der das Fenster erstellt hat, zu trennen. Dies führt normalerweise dazu, dass der Prozess auch für einen Remote-Prozess beendet wird.Vor- und Nachteile für jeden Ansatz:
wmctrl -c
schließt ein Fenster "elegant" - als hätten Sie selbst auf die Schaltfläche zum Schließen des Fenstermanagers geklickt. Dadurch wird der Prozess möglicherweise nicht abgebrochen und das Fenster wird möglicherweise nicht geschlossen, wenn die Anwendung nicht möchte, dass das Fenster geschlossen wird oder eingefroren wird.Die Verwendung der PID von
wmctrl -lp
with beendetkill
den Prozess garantiert, erfordert jedoch möglicherweise zusätzliche Arbeit oder funktioniert überhaupt nicht, wenn der Prozess möglicherweise auf einem anderen Computer ausgeführt wird.xkill
Der Prozess wird möglicherweise nicht beendet, wenn er nach einem Absturz des X-Servers oder einem Verlust der Netzwerkverbindung wiederhergestellt werden kann. Die meisten Anwendungen stürzen jedoch unter diesen Umständen einfach ab. In jedem Fall werden die Fenster weg sein. Remote-Prozesse und lokale Prozesse werden identisch behandelt.quelle
verwenden
xkill
. Gebenxkill
Sie einfach Ihr Terminal ein und klicken Sie auf das gewünschte Fenster.quelle