Léxico de TI › Programação › WM_CLIENT_MACHINE

WM_CLIENT_MACHINE

Programação Svenska → Atualizado: 2026-10-10

A propriedade do ICCCM que nomeia a máquina em que um programa X está rodando — criada para o rsh saber onde reiniciá-lo, hoje usada sobretudo como salvaguarda para o gerenciador de janelas não matar o processo errado.

O nome é mais antigo que o significado: WM_CLIENT_MACHINE é o atom de número 36 na lista de atoms predefinidos do protocolo X, fixada no X11R1 em 1987, dois anos antes de o ICCCM 1.0 decidir o que deveria ir nele. A resposta foi uma string de um dos tipos TEXT com o nome da máquina do cliente "como visto da máquina que executa o servidor" — uma redação que admite que dois computadores nem sempre se chamam pelo mesmo nome. A XSetWMProperties da Xlib sempre a define, usando o nome curto do host vindo de gethostname, de modo que o xterm e todo programa Xt e Motif a carregam sem saber; GTK e Qt a definem por conta própria. O objetivo eram as sessões: junto com o WM_COMMAND, ela dizia onde o comando devia ser executado, via rsh, ao recriar uma sessão numa rede em que os programas ficavam em máquinas diferentes da tela.

Esse uso morreu com o XSMP, mas o EWMH deu à propriedade um segundo emprego: um programa que define o _NET_WM_PID também precisa definir o WM_CLIENT_MACHINE, e o gerenciador de janelas só pode enviar SIGKILL se o nome coincidir com o seu — um PID de outra máquina, chegando por encaminhamento X11 via SSH, apontaria para um processo local qualquer. Por isso o EWMH exige um nome de domínio totalmente qualificado, coisa que praticamente ninguém fornece: o xprop mostra um nome curto na maioria dos desktops, e a comparação só funciona porque os dois lados perguntam ao mesmo gethostname. O xlsclients imprime a propriedade na primeira coluna, lembrança de que as telas X já foram cheias de programas vindos de várias máquinas.

← Voltar ao léxico