Jak mogę zabić / zamknąć „osierocone” okno?

14

Uruchomiłem kilka skryptów w języku Python, aby zobrazować niektóre rzeczy i od czasu do czasu stracę kontrolę nad tym, jakie okna się pojawił, i po prostu go zabiję ^Z. Jednak w przeciwieństwie do systemu Windows skojarzone okna nie umierają; trzymają się i nie można ich zamknąć.

Te okna wydają się nieświadome; nie przerysowują po zminimalizowaniu lub zmianie rozmiaru. Jestem nowy w środowisku Linux, więc nie mogę w pełni wyrazić, co się dzieje, ale w każdym razie, jak pozbyć się tych okien zombie-sierocych-hobo?

Nick T.
źródło
Zakładając, że uruchamiasz te skrypty z terminala, zawsze możesz pisać, exita procesy powinny zakończyć się automatycznie (przynajmniej z mojego doświadczenia). Możesz także użyć ps -Apolecenia, a następnie wpisać sudo kill <process id here>.
Alex Spataru,
^ Z nie zabija procesu Linux. Po prostu to zawiesza. ^ C powinno być twoim pierwszym wyborem. Gdy musisz użyć ^ Z, aby odzyskać kontrolę nad terminalem, powinieneś zabić zawieszone zadanie, aby zwolnić zasoby, których on nadal używa. Nie będzie umierać z żadnym sygnałem innym niż SIGKILL, gdy jest zawieszony. „bg” będzie zatem przydatne, aby pozwolić dziecku umrzeć. xkill jest ładny i łatwy w użyciu, ale tak naprawdę nie zabija tego procesu. Dobrze zachowujący się program, taki, który nie utknął, np. Ponieważ został zawieszony, zakończy działanie po zamknięciu X połączenia przez xkill.
Martin Dorey

Odpowiedzi:

37

Możesz użyć xkillw wierszu polecenia, który pozwala kliknąć otwarte okno, aby zabić proces.

Eric
źródło
Jeszcze lepiej, jeśli uruchomisz go z Alt-F2, aby nie potrzebujesz okna terminala.
colan
1

Możesz także użyć sekwencji Ctrl+ Alt+Esc

Keld Simonsen
źródło
Domyślnie jest ustawiony Switch system controls directlyna przynajmniej w moim systemie i jeden zainstalowany w VMWare (oba mają 18,04 LTS). Możesz dodać sposób przedefiniowania tego skrótu.
Kulfy