Czy istnieje sposób na wyświetlenie - i zabicie - uruchomionych procesów w systemie Mac OS X w sposób podobny do „Ctrl + Alt + Delete” w systemie Windows?

57

Co więc robisz na komputerze Mac, gdy proces (w przeciwieństwie do aplikacji) powoduje zatrzymanie procesora, zalanie komputera i musisz go zabić?

Wiem, że możesz użyć toplub otworzyć „Aplikacje> Narzędzia> Monitor aktywności” i zabić go stamtąd.

Ale co się stanie, gdy proces zużywa już tak dużo procesora, że ​​wykonanie któregokolwiek z tych zadań jest niemożliwe?

W systemie Windows możesz po prostu zrobić ctrl+ alt+, deletea lista procesów otworzy się niezawodnie. Bez względu na to, jak bardzo Twój komputer jest wstrząsający, zawsze masz dostęp do listy procesów.

W systemie Mac OS jest cmd+ alt+ escape, który niezawodnie pokazuje uruchomione aplikacje . Dobrze, gdy jest to aplikacja powodująca problem. Ale: co robisz, jeśli jest to proces?

AP257
źródło
4
Pewnie. Cmd / Alt / Escape pokazuje tylko aplikacje: Chcę, aby wyświetlały wszystkie procesy.
AP257
@Bobby - wygląda na to, że nigdy nie pracowałeś na komputerze Mac i musiałeś użyć Force Quit . Jestem pewien, że AP257 ma rację.
jww
@noloader: Cóż, nie mam pojęcia, co próbowałem powiedzieć z tym komentarzem ...
Bobby
@ AP257 - kolejnym przydatnym komputerem Mac jest sposób na szybkie zablokowanie komputera Mac. Jak Windows Ctrl / Alt / Delete → Zablokuj stację roboczą .
jww

Odpowiedzi:

39

Biorąc pod uwagę twoją chęć zabicia pojedynczego procesu, zakładam, że nie masz nic przeciwko rozwiązaniu w terminalu. Terminal jest dość lekki, więc powinien reagować, nawet jeśli twój system jest zalany lub logujesz się przez ssh.

Poza podstawowym killpoleceniem, które zabija procesy za pomocą ich pid(które trzeba uzyskać albo z pspolecenia, albo z Monitora aktywności), fajną sztuczką na terminalu jest killallpolecenie, które pozwala zabić proces według nazwy zamiast pid.

Na przykład, jeśli wiesz, że nazwa Twojego procesu to my-prog-0cokolwiek, możesz przejść do terminala i wykonać:

% killall my-prog-0

Istnieje wiele dobrych opcji (zobacz man killallwięcej informacji):

-s : Shows the kill commands that will be generated so you can be safe.
-u : Limits to a specified user

Należy zwrócić uwagę na OS X, że niektóre procesy systemowe zostaną automatycznie zrestartowane, jeśli zostaną zabite przez launchddemona (myślę, że?). Na przykład, jeśli Dock nie reaguje, możesz zrobić a killall Docki uruchomi się on automatycznie.

dtlussier
źródło
Dzięki za szczegółową odpowiedź i sugestie, nawet jeśli tak naprawdę nie rozwiązuje problemu. Uruchomienie terminalu może potrwać kilka minut, jeśli maszyna niszczy ... a do czasu uruchomienia tajemniczy proces w tle zwykle zanika ... W każdym razie dzięki.
AP257
Jeśli tak jest, to nie jestem pewien, że jest wiele do zrobienia, poza ustaleniem, co powoduje ten proces przebijania, a następnie uniknięciem tych warunków.
dtlussier
Dlaczego jest to 0konieczne?
IgorGanapolsky
„0” nie jest konieczne. Zostało to uwzględnione w odpowiedzi, ponieważ typowe jest, że procesy mają w nazwie liczby. Ważne jest, aby dopasować nazwę procesu, który chcesz zabić.
dtlussier
@dtlussier Typowe, że procesy mają numery w nazwie? Nigdy tego nie widziałem, cóż, nigdy. O jakich aplikacjach mówisz?
SilverWolf
25

Force Quit to alternatywa dla Task Managera na Macu. Jest szybki, wydajny i bardzo szybko zabija aplikacje.

Dostęp do tej funkcji można uzyskać na dwa sposoby.

  1.  Ikona Apple (w lewym górnym rogu ekranu) -> Force Quit ...
  2. Przytrzymaj Alt/Option+  Apple/Command+ Escape. Może to być przydatne, jeśli zapamiętałeś polecenie klawiatury, aw rzadkich przypadkach Finder również źle się zachowuje i zamarza.
JFW
źródło
3
Tak, to zabija aplikacje . To mój punkt! Na moim komputerze działa proces w tle, który czasami powoduje znaczne spowolnienie. Force Quit tego nie pokazuje.
AP257
Monitor aktywności może służyć do wyświetlania wszystkich procesów i ich zabijania. Możesz je zamknąć lub wymusić zamknięcie w aplikacji.
JFW
9

Wypróbuj następującą komendę w terminalu, aby wyświetlić listę i wyszukać proces za pomocą wyrażenia regularnego: -

ps gx | grep „Symantec”

Powyższy przykład przedstawia listę wszystkich procesów związanych z „Symantec”. Zamień „Symantec” na własną frazę. Następnie użyj wariantów polecenia „zabij”. Możesz użyć: -

zabić pid

Zamień „pid” na rzeczywisty identyfikator procesu. Albo użyj,

zabić wszystkich

jak sugerowano wcześniej. Aby powtórzyć kolejną przydatną sugestię, użyj

człowiek zabija

aby zobaczyć instrukcję polecenia „zabić”, a także przewinąć w dół i zobaczyć powiązane polecenia, które są wymienione w sekcji „ZOBACZ TAKŻE”.

Amit
źródło
8

To nie jest proces zabijający klawiaturę, tylko do uruchamiania aplikacji. Jedynym sposobem na zabicie procesów jest użycie Monitora aktywności lub Terminalu za pomocą poleceń UNIX.

Madison S.
źródło
3

Przejdź do monitora aktywności, znajdź stację dokującą i podświetl ją. Naciśnij przycisk zabicia (Stopsign z X w środku, u góry po lewej).

Force Quit służy do prostych aplikacji, a monitor aktywności może służyć do zabijania procesów.

Alex
źródło
2

Użyj Monitora aktywności, aby znaleźć proces, który chcesz zabić. Spójrz na PID za pomocą typu Terminala Zabij numer PID, a następnie wróć.

Zakłada się, że masz dostęp administratora lub sudu

Steve Walker
źródło
1
Dlaczego nie wybrać procesu i nacisnąć przycisk „Wymuś zakończenie procesu” w lewym górnym rogu?
Arjan