Monitor procesu odpowiada ekwiwalentowi dla systemu Linux?

26

Czy istnieje Unix / Linux odpowiednik Process Monitor , zarówno GUI, jak i CUI?

Jeśli to robi różnicę, patrzę na Ubuntu, ale jeśli istnieje odpowiednik dla innych systemów (Mac, inne warianty Linuksa, takie jak Fedora itp.), To znajomość któregokolwiek z nich też byłaby przydatna.

Edytować:

Process Monitor służy do monitorowania wywołań systemowych (takich jak tworzenie lub zapisywanie plików), natomiast Process Explorer służy do monitorowania stanu procesu (który jest podobny do Monitora systemu). Proszę o pierwsze, a nie drugie. :-)

Mehrdad
źródło

Odpowiedzi:

12

Tryb gotowości konsoli jest w tym celu top, ale istnieją alternatywy, takie jak moja ulubiona, htopktóre zapewniają nieco większą elastyczność wyświetlania i pozwalają na kilka dodatkowych operacji na procesach.

Mniej interaktywnym widokiem, który lepiej psnadaje się do użycia w skryptach, byłby program i wszyscy jego krewni.

Edycja: Na podstawie wyjaśnionego pytania możesz zauważyć, że straceobsługuje oglądanie wywołań systemowych wykonanych przez dany proces, w tym wszystkich operacji odczytu i zapisu oraz wywołań funkcji OS. Możesz aktywować go w wierszu poleceń przed programem, który chcesz śledzić lub dołączyć do uruchomionego procesu, naciskając sna proces wybrany w htop.

Caleb
źródło
4
Uważam, że topjest odpowiednikiem Process Explorera , a nie Monitora procesów , prawda?
Mehrdad
Może uruchomisz go i przejrzysz stronę man. Przeczytałem listę funkcji, z którą łączyłeś monitor procesu i brzmiało to tak, jakby htopobejmowało wszystkie szczegóły oprócz monitorowania sekwencji rozruchu. W najlepszym wypadku można go było aktywować w screen/ tmuxczasami w połowie cyklu bootowania Linuksa.
Caleb
W świetle innych komentarzy możesz również szukać strace, od którego możesz aktywować htop, naciskając sna proces lub ręcznie z wiersza poleceń, gdy uruchomisz coś lub z identyfikatorem procesu.
Caleb
12

Dziadkiem wszystkich monitorów procesów jest topwiele narzędzi do monitorowania systemu top. Na przykład można iotopobserwować dyskowe operacje we / wy, pod atopkątem wielu zasobów systemowych, pod powertopkątem zużycia energii.

Jeśli potrzebujesz bardziej szczegółowych informacji, nie są one domyślnie śledzone. Zadzwoń, aby zobaczyć, co robi dany processtrace . Na przykład, jeśli interesuje Cię tylko dostęp do systemu plików:

strace -s9999 -efile command_name    # trace a program during its whole execution
strace -s9999 -efile -p1234          # trace a running program with the given PID

stracejest specyficzny dla Linuksa, ale inne systemy mają podobne narzędzie: trussw Solarisie ktracelub dtracepod * BSD itp.

Aby obserwować, co dzieje się z określonym plikiem lub określonym katalogiem lub drzewem katalogów, użyj funkcji inotify .

inotifywait -m .

Ponownie, funkcja jest specyficzna dla Linuksa, ale większość innych jednorożców ma podobny system, np. Kqueue pod * BSD i FAM (pierwotnie z SGI, ale teraz dostępny jako API w wielu systemach).

Aby obejrzeć wszystkie wywołania systemowe w systemie Linux, możesz użyć podsystemu kontroli . Jest stosunkowo nowy i nie ma dużo literatury na ten temat; wyszukaj auditctllub przeczytaj auditctlstronę podręcznika man . Istnieje kilka przykładów na tej stronie: śledzenie plików dostępów , śledzenie realizacji procesu .

Gilles „SO- przestań być zły”
źródło
Czy na pewno masz na myśli odpowiednik Monitora procesów , a nie Eksploratora procesów ?
Mehrdad
@ Mehrdad: Rozumiem, użyłem nazwy i pamięci narzędzia, którego użyłem w systemie Windows (czyli tak naprawdę Process Explorera), a nie samego opisu. Zawsze niebezpiecznie jest poprosić o odpowiednik określonego programu, lepiej poprosić o program z określonymi funkcjami.
Gilles „SO- przestań być zły”
Dziękuję Ci. iotop -o -b -Ppokazuje mi, które procesy wykonują operacje dyskowe we / wy
bartolo-otrit
8

Możesz rzucić okiem na lsofi strace. Monitor procesu Sysinternal to w rzeczywistości Filemon i Regmon w połączeniu z kilkoma dodatkowymi ulepszeniami. topPolecenie jest bardziej Process Explorer.

Omega
źródło
4

Prawdopodobnie szukasz sysdig

Na przykład:

sysdig -A -c echo_fds
Podkoszulek
źródło
3

Naprawdę spóźniłem się z odpowiedzią na to pytanie, ale rozpocząłem projekt, którego celem jest zrobienie dokładnie tego, czego szukasz. Spójrz na to tutaj: https://github.com/alexandernst/monks

alexandernst
źródło
2

Nie korzystałem z tego Monitora procesów, ale o ile wiem, jest taki sam jak gnome-system-monitorw systemie Gnome. Jeśli używasz KDE, prawdopodobnie mają coś podobnego.

Keith
źródło
Nie, są różne. Monitor procesu w rzeczywistości przechwytuje wywołania systemowe, a nie wyświetla informacji o procesie. (To, o czym mówisz, osiąga jednak Process Explorer.)
Mehrdad
Och, cóż, zwykle używam narzędzia CLI vmstat do takich rzeczy. Ale dotyczy to całego systemu, a nie procesu.
Keith
1

dtrace4linux pozwala prześledzić kilka ciekawych ciekawostek jądra. Chociaż wydaje się być silniejszy niż sysdig, niestety nie jest tak dobrze wychowany.

Rui F. Ribeiro
źródło