Dados os IDs produzidos por wmctrl -l
, eu gostaria de poder eliminar o processo vinculado ao ID da janela.
Como você sugeriria fazer isso?
command-line
bash
batch
wmctrl
user123456
fonte
fonte
Se você usar
wmctrl -lp
os PIDs, estará na terceira coluna.Para um determinado ID de janela, você pode usar
(substitua WID pelo seu ID da janela)
fonte
col3
.wmctrl
na verdade, tem outro sinalizador-p
para listar o PID.Depois que você souber disso, é um exercício trivial extrair o PID dessa janela e passá-lo para
kill
fonte
Você também pode usar
xkill -id [id]
. O utilitário xkill funciona de maneira diferente das outras respostas - em vez de fechar a janela ou interromper o processo diretamente, ele instrui o servidor X a desconectar o cliente que criou a janela. Normalmente, isso causa o término do processo, mesmo para um processo remoto.Vantagens e desvantagens de cada abordagem:
wmctrl -c
fecha uma janela "normalmente" - como se você tivesse clicado no botão Fechar do gerenciador de janelas. Isso pode não matar o processo e nem fechar a janela, se o aplicativo não quiser que a janela seja fechada ou esteja congelada.O uso do pid from
wmctrl -lp
comkill
é garantido para matar o processo, mas pode exigir trabalho extra ou não funcionar se o processo estiver em execução em uma máquina diferente.xkill
pode não finalizar o processo, se ele foi projetado para recuperar uma falha do servidor X ou perda de conectividade da rede, mas a maioria dos aplicativos simplesmente travará nessas circunstâncias. De qualquer forma, as janelas desaparecerão. E processos remotos e locais são tratados de forma idêntica.fonte
use
xkill
. Basta digitarxkill
seu terminal e clicar na janela desejada.fonte