Czy istnieje sposób na zamknięcie aplikacji GUI w przyjazny sposób „ proszę wyjść teraz ” bez graficznego dostępu do okna aplikacji?
Na przykład, jeśli ekran Gnome / X ulegnie awarii na czarny, chciałbym przełączyć się na tty2 i zamknąć aplikacje, takie jak Firefox, w sposób, który pozwoli im zapisać swoją konfigurację itp. W najlepszym wypadku bez dalszych zapytań użytkownika.
źródło
pkill
zamiast tego podać nazwę pliku wykonywalnego. Na przykład:pkill -HUP firefox-bin
pkill
zabije je wszystkie. Na przykład uruchomić to kilka razy, aby dokonać pewnych procesów w tle:sed "s/Woo/woo/" < /dev/urandom >> /dev/null &
. Więc zróbpkill -HUP sed
. Zabijesz wszystkie instancje sed, które uruchomiłeś oraz wszelkie inne wykonujące pożyteczną pracę.pkill
zabije niektóre aplikacje, których się nie spodziewasz: np. Jeśli maszchromium
uruchomiony i chcesz zabić program o nazwierom
,pkill
chętniechromium
zestrzeli. Lepsze użyciekillall
, które będzie pasować tylko do dokładnej nazwy (jednak nie w Solarisie, gdzie dosłownie zabija wszystkie procesy ).pkill -x
aby uzyskać dokładne dopasowanie zamiast dopasowania częściowego. Osobiście korzystam z częściowego dopasowywania, aby oszczędzać na pisaniu, ale musisz wiedzieć, co robi narzędzie. Tak, domyślnie dopasowuje ciągi częściowe. Inną przydatną opcją jest-f
dopasowanie do pełnego wiersza poleceń zamiast po prostu$0
.Możesz spróbować:
lub
Przynajmniej w niektórych systemach, gdy system jest zamykany, wszystkie procesy otrzymują sygnał TERM (15), zanim otrzymają sygnał KILL (9). HUP często powoduje, że aplikacja ponownie ładuje swoje konfiguracje, ale może być różna dla poszczególnych procesów.
źródło
Nie ma ogólnego sposobu, aby powiedzieć aplikacji, aby zamknęła i zapisała swoją konfigurację. Mogą istnieć sposoby powiadamiania aplikacji korzystających z określonego frameworka, np. W
dcop kfoo MainApplication-Interface quit
przypadku niektórych aplikacji KDE 3. Pamiętaj, że aplikacja może wyświetlić okno dialogowe z prośbą o potwierdzenie.Jeśli ekran X stanie się bezużyteczny, zabij serwer X. Naciśnij Ctrl+ Alt+ BackSpace; jeśli to nie zadziała, zabij proces serwera X za pomocą
sudo pkill -x Xorg
. Kiedy serwer X umiera, wszystkie aplikacje X są powiadamiane i będą próbowały wyjść z gracją (nie ma gwarancji, że wszystko uratują, ale jest to najlepszy wybór).źródło
Zgodnie z odpowiedzią @ andcoz, jeśli nie znasz PID aplikacji (zakładam, że nie znasz go na pamięć), spróbuj tego:
źródło
pkill -HUP [application_name]
:)Dwa inne polecenia, które warto rozważyć, to
wmctrl -c
ixdotool windowkill
. Nie jestem pewien, czywindowkill
właśnie tego szukasz, jeśli nie, możesz być zainteresowanywindowdelete
łatką.źródło