Możemy zainstalować jądra GNU za pośrednictwem brew
. Ale nie ma żadnych ps
narzędzi . Czy możemy używać GNU ps
w OS X?
Chciałbym użyć GNU, ps
ponieważ ma więcej opcji i funkcji.
macos
command-line
Sanghyun Lee
źródło
źródło
ps
lubps -ef
w terminalu na OSX? działa dla mnie na OSX 10.7.5 bez modyfikacji, na dwóch różnych komputerach. Jest w / bin / psps
ponieważ ma on więcej opcji i funkcji.Odpowiedzi:
Nie ma przenośnego programu ps. Komenda ps dostępna w systemie Linux jest, jak wspomnieli inni, z pakietu „procps”. Powodem, dla którego nie można tego przenieść do OSX, jest fakt, że jądra Linux i OSX nie ujawniają tych informacji w ten sam sposób. Linux używa pseudo-systemu plików w / proc, podczas gdy OSX używa funkcji sysctl. Inne systemy mogą korzystać z dowolnego mechanizmu, ale dostarczają dane w innym formacie lub mogą wymagać programów takich jak ps, aby czytały bezpośrednio z pamięci jądra.
Zasadniczo nie ma standardu określającego, w jaki sposób informacje o procesie są dostępne dla programów takich jak ps i top; więc program musi być zaprojektowany dla konkretnego systemu operacyjnego. Jeśli brakuje konkretnej funkcji w ps OSX, musisz znaleźć inny program, który może to zrobić, lub napisać ją samodzielnie (spójrz na instrukcję sysctl, w szczególności KERN_PROC jako punkt początkowy) lub zmodyfikuj istniejącą ps polecenie, aby dodać funkcję.
Alternatywnie, jeśli możesz uzyskać to, czego potrzebujesz, analizując dane wyjściowe samej komendy ps, możesz być w stanie napisać program przenośny - dane wyjściowe z tą
-o
opcją są dość niezawodne na różnych platformach, szczególnie jeśli odwołujesz się do standardu UNIX dla nazwy kolumn do użycia.źródło
/proc
system plików jest jedyną metodą, jaką jądro Linux udostępnia w celu uzyskania listy procesów, czy też istnieją osobne wywołania systemowe, które dostarczają tę informację?Nie - ponieważ nie istnieje. Aby dowiedzieć się, dlaczego nie ma wbudowanego pakietu
ps
GNUcoreutils
, zobacz tę odpowiedź na forach Unix i Linux.Najlepsza alternatywna formuła dostępna przez Homebrew to
psgrep
:Mimo to, nadal można używać
psgrep
do zachowywać się jak OS X naps
tak. Na przykład:pgrep
jest również dostępny przezbrew
, który jest syntaktycznie bliższyps
, ale mniej wydajny niżpsgrep
:Cały mój nacisk.
źródło
pgrep
jest również częścią najnowszych wersji OS Xtype -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
pakiet MacPorts lub Homebrew zapewniapgrep
ipkill
tego właśnie osobiście szukałem, kiedy tu się pojawiłem.ps
nie jest częścią jądra GNU według Wikpedia jądra GNU . Wersja dostarczana z moją dystrybucją Linuksa wydaje się pochodzić z procps , ale wygląda na to, że nie ma na to formuły w homebrew. Istnieją formuły, dlapstree
których można uzyskać wspaniałe widoki drzewa, a takżehtop
jest kolejną dobrą przeglądarką procesów.źródło