IT-lexikon › Programmering › WM_CLIENT_MACHINE

WM_CLIENT_MACHINE

Programmering In English → Uppdaterad: 2026-10-10

ICCCM-egenskapen med namnet på maskinen ett X-program kör på — tänkt för att rsh skulle veta var det skulle startas om, i dag mest spärren som hindrar fönsterhanteraren från att döda fel process.

Namnet är äldre än sin betydelse: WM_CLIENT_MACHINE är atom nummer 36 i X-protokollets lista över fördefinierade atomer, fastslagen i X11R1 1987, två år innan ICCCM 1.0 bestämde vad som skulle stå i den. Svaret blev en sträng av någon TEXT-typ med namnet på klientens maskin "så som det ser ut från maskinen som kör servern" — en formulering som medger att två datorer inte alltid kallar varandra samma sak. Xlib:s XSetWMProperties sätter egenskapen alltid, med det korta värdnamnet från gethostname, så xterm och varje Xt- och Motifprogram bär den utan att veta om det; GTK och Qt sätter den själva. Poängen var sessioner: tillsammans med WM_COMMAND talade den om var kommandot skulle köras, via rsh, när en session återskapades på ett nät där programmen bodde på andra maskiner än skärmen.

Det bruket dog med XSMP, men EWMH gav egenskapen ett andra uppdrag: ett program som sätter _NET_WM_PID måste också sätta WM_CLIENT_MACHINE, och fönsterhanteraren får bara skicka SIGKILL om namnet stämmer med dess eget — ett PID från en annan maskin, via X11-vidarebefordran över SSH, pekar annars på en slumpmässig lokal process. EWMH kräver därför ett fullständigt domännamn, vilket i princip ingen levererar: xprop visar på de flesta skrivbord ett kort namn, och jämförelsen fungerar bara för att båda sidor råkar fråga samma gethostname. xlsclients skriver egenskapen som första kolumn, en påminnelse om att X-skärmar en gång var fulla av program från flera maskiner.

Källor ICCCM · EWMH
← Tillbaka till lexikonet