xkill-lignende program som slår alle processer fra samme program ihjel?
Jeg havde lige en masse pdf-dokumenter åbne som jeg ikke gad lukke enkeltvist, så jeg kørte en pkill evince i terminalen.
Så tænkte jeg på om der mon findes et program i stil med xkill hvor man holder musen hen over et givent vindue og får muligheden for at lukke alle vinduerne (processerne) i stedet for bare det under musemarkøren?
Så tænkte jeg på om der mon findes et program i stil med xkill hvor man holder musen hen over et givent vindue og får muligheden for at lukke alle vinduerne (processerne) i stedet for bare det under musemarkøren?
Kommentarer23
Hvad kører du med som DE
Jeg bruger den almindelig
Men hvordan fungerer det i Gnome3? Måske det også virker her...
Ud fra den her:
Ser det ud som om du kan -all option
men er dog ikke sikker
xkill -all virker desværre
xkill -all virker
Det gør den nemlig ikke. Man skal gentage kommandoen for alle process ID'erne. Det er hurtigere bare at genstarte, eller i hvert fald nemmere.
Njaa, det er såmænd
Njaa, det er såmænd hurtigt nok i terminalen, pkill xxx, men det kunne være snildt hvis det kunne gøres med et museklik.
Men hvordan ved xkill egentligt hvilken process der gemmer sig bag et vindue?
Men hvordan ved xkill
xkill slår ressourcens creator ihjel, der er angivet med nogle system variabler, så man ikke behøver at specificere PID eller ID, men hvordan det helt nøjagtigt fungerer, ved jeg ikke.
Men det er rigtigt, at pkill programnavn burde kunne slå alle processer ihjel,. Jeg mener bare at huske, at det ikke altid virker, og som man kan kontrollere ved at køre
pgrep -l programnavn, vistnok ...
Det er sjældent jeg bruger den, for det er efterhånden ikke så ofte jeg oplever at X er ustabil, så jeg har glemt nogle detaljer, og skulle det ske, så har X godt af en genstart eller bare en logoff. Der kan være andre processer der også bør genstartes.
Det er det samme i Windows, der hvis man dræber en process, kan komme ud for at systemet bliver endnu mere ustabilt, alt efter hvor vigtig den er for systemet m.v..
Edir:
Har lige prøvet med Chrome.
administrator@mint-11 ~ $ pkill chrome
administrator@mint-11 ~ $ pgrep -l chrome
22434 chrome
22439 chrome
22441 chrome
22580 chrome
23397 chrome
31628 chrome
Progammet lukker godt nok, men alligevel ikke helt.
Christ - Jeg var nødt til
Prøv pkill -9 chrome
Det er rigtigt at pkill ikke
I øvrigt undrer det mig hvor det nogle gange er umuligt at slå en process ihjel med kill -9. I de tilfælde hjælper det som regel at genstarte X da den er moderprocessen.
Men i mit tilfælde var det nu ikke fordi et program hang, jeg havde bare fået åbne 10 pdf-vinduer og gad ikke lukke dem enkeltvist.
#7: xkill slår ressourcens creator ihjel, der er angivet med nogle system variabler, så man ikke behøver at specificere PID eller ID, men hvordan det helt nøjagtigt fungerer, ved jeg ikke.
Men igen, hvordan ved xkill hvilken creator der hører til et vindue. Med andre ord, hvordan laver den koblingen mellem en musekoordinat og et givent vindue? Som mangeårig windowsudvikler har jeg selv brugt sådanne funktioner et hav af gange, de ligger specificeret i win32 api'et. Men hvad hedder det tilsvarende api til Linux?
x11
du kan finde PID med xprop og jeg vil gå ud fra at xkill gør noget tilsvarende altså den matcher en window resource(windowID) med et process id, og sender et TERM signal til det process ID
et fun fact omkring navnet X-windows er at det faktisk er ældre end MS varemærke på MS Windows, og altså ikke navngivet som en "klon" noget der forvirre mange ex windows folk.
en løsning
#!/bin/sh
mypid=`xprop |awk '/PID/ { print $3 }'`;
echo $mypid;
appname=`ps -e |grep $mypid |awk '{ print $4 }'`;
echo $appname;
killall $appname;
brug på eget ansvar, det er kun halvtested.
Da jeg har en
Sejt! Det virker sgu :-)
Jeg synes det er en af de allerstærkeste ting ved Linux at der findes et hav af små nyttige programmer der kan kædes sammen som her til at udføre stort set hvad som helst.
Det er virkeligt "Do one thing only, but do it well" filosofien.
kill -9 pid plejer også at
kill -9 pid plejer
Ikke hvis du har læst hele tråden :-)
killall
#14 og #16: Tråden handler
Jep
marlar:
Den havde jeg ikke
Den havde jeg ikke lige fanget.
Desuden er jeg vokset op med kill -9. Første gang jeg hørte om den var det som en fortælling om "jægeren som lærte sønnen at slå byttet ihjel" og det fangede mig :)
#18, #19:
Man skulle tro at
Man skulle tro at kill -9 slog alt ihjel, men det hænder faktisk ret tit at den ikke gør det. Jeg har aldrig forstået hvorfor.
unkillable processes
1: progammet er helt fubar, altså tingene er gået så galt at tingene er låst uden for det traditionelle user space, en sådan process kaldes også en zombie, og vil typisk ikke bruge nogen CPU tid overhodet
2: at der er et andet program, typisk init, der genstarter programmet. det er etc forkaringen på at f.eks. kill -9 X.org ikke helt virker som forventet processen dør fint nok den genopstår bare med et nyt pid.
I KDE, hvis du har så mange
Ville da tro at gnome2 gjorde det samme.
Er man helt på skideren
Er man helt på skideren kan
kill -- -1
lukke alle ens processer og genstarte X så man atter står til login, men den sletter alle processer for den bruger som fyre den af, så ikke smart at gøre det som root.
EDIT
Hvis det kan bruges kan du jo lave et script og putte den i, og så lave det som en genvej på din desktop, en pænt hurtig måde at logge af på, ha ha