Biorąc pod uwagę identyfikatory wyprodukowane przez wmctrl -l
, chciałbym móc zabić proces powiązany z identyfikatorem okna.
Jak sugerowałbyś to zrobić?
command-line
bash
batch
wmctrl
użytkownik123456
źródło
źródło
Jeśli używasz
wmctrl -lp
PID, są w trzeciej kolumnie.Dla danego identyfikatora okna możesz użyć
(zamień WID na swój identyfikator okna)
źródło
col3
.wmctrl
faktycznie ma inną flagę-p
na liście PID.Gdy się o tym dowiesz, jest to trywialne ćwiczenie wyodrębnienia PID tego okna i przekazania go
kill
źródło
Możesz także użyć
xkill -id [id]
. Narzędzie xkill działa inaczej niż inne odpowiedzi - zamiast zamykać okno lub bezpośrednio zabijać proces, instruuje serwer X, aby rozłączył klienta, który utworzył okno. Zwykle powoduje to zakończenie procesu nawet dla procesu zdalnego.Zalety i wady każdego podejścia:
wmctrl -c
zamyka okno „z wdziękiem” - tak jakbyś sam kliknął przycisk zamykania menedżera okien. Może to nie zabić procesu i nawet nie zamknąć okna, jeśli aplikacja nie chce, aby okno zostało zamknięte lub zostało zawieszone.Korzystanie z pid from
wmctrl -lp
withkill
gwarantuje zabicie procesu, ale może wymagać dodatkowej pracy lub w ogóle nie działać, jeśli proces może być uruchomiony na innym komputerze.xkill
może nie zakończyć procesu, jeśli jest zaprojektowany tak, aby móc przywrócić działanie po awarii serwera X lub utracie łączności z siecią, ale większość aplikacji po prostu zawiesi się w takich okolicznościach. W każdym razie okna znikną. Procesy zdalne i lokalne są obsługiwane identycznie.źródło
użyć
xkill
. Po prostu wpiszxkill
swój terminal i kliknij wymagane okno.źródło