Wir können GNU coreutils über installierenbrew
. Aber es gibt keine ps
in den Utensilien . Können wir Gnu ps
in OS X verwenden?
Ich möchte GNU verwenden, ps
da es mehr Optionen und Funktionen bietet.
macos
command-line
Sanghyun Lee
quelle
quelle
ps
oderps -ef
in einem Terminal zu laufen ? Funktioniert unter OSX 10.7.5 ohne Änderungen auf zwei verschiedenen Computern. Es ist in / bin / psps
weil es mehr Optionen und Funktionen hat.Antworten:
Es gibt kein tragbares ps-Programm. Der unter Linux verfügbare Befehl ps stammt, wie bereits erwähnt, aus dem Paket "procps". Der Grund, warum dies nicht auf OSX portiert werden kann, ist, dass Linux- und OSX-Kernel diese Informationen nicht auf die gleiche Weise verfügbar machen. Linux verwendet ein Pseudo-Dateisystem in / proc, während OSX die Funktion sysctl verwendet. Andere Systeme verwenden möglicherweise einen der beiden Mechanismen, stellen jedoch Daten in einem anderen Format bereit, oder erfordern möglicherweise Programme wie ps, um direkt aus dem Kernelspeicher zu lesen.
Im Allgemeinen gibt es keinen Standard dafür, wie Prozessinformationen für Programme wie ps und top verfügbar sind. Daher muss das Programm für ein bestimmtes Betriebssystem entwickelt werden. Wenn in den OSX-ps eine bestimmte Funktion fehlt, müssen Sie ein anderes Programm finden, das dies kann, oder Sie müssen eines selbst schreiben (siehe sysctl-Handbuch, insbesondere KERN_PROC als Ausgangspunkt) oder die vorhandenen ps ändern Befehl zum Hinzufügen der Funktion.
Wenn Sie durch Analysieren der Ausgabe des Befehls ps selbst das bekommen, was Sie benötigen, können Sie möglicherweise ein portierbares Programm schreiben. Die Ausgabe mit der
-o
Option ist für alle Plattformen einigermaßen zuverlässig, insbesondere wenn Sie sich auf den UNIX-Standard für beziehen zu verwendende Spaltennamen.quelle
/proc
Dateisystem die einzige Methode, mit der der Linux-Kernel eine Liste von Prozessen abruft, oder gibt es auch separate Systemaufrufe, die diese Informationen bereitstellen?Nein - da es nicht existiert. In den Unix- und Linux-Foren erfahren Sie , warum das
ps
GNU-coreutils
Paket keine eingebauten Komponenten enthält .Die beste über Homebrew verfügbare alternative Formel ist
psgrep
:Trotzdem können Sie sich immer noch
psgrep
so verhalten, wie es OS X tunps
würde. Beispielsweise:pgrep
ist auch verfügbar überbrew
, was syntaktisch näher istps
, aber weniger effizient alspsgrep
:Alle Schwerpunkte sind meine.
quelle
pgrep
ist auch Teil neuerer Versionen von OS Xtype -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
Paket entweder von MacPorts oder Homebrew bietetpgrep
undpkill
das ist , was ich persönlich suchte , als ich hier auftauchen.ps
ist laut Wikpedia kein Bestandteil von GNU coreutils . Die Version, die mit meiner Linux-Distribution geliefert wird, scheint von procps zu stammen , aber es scheint, als gäbe es keine Formel für Homebrew. Es gibt Formeln, fürpstree
die Sie großartige Baumansichten erhalten, und eshtop
gibt auch einen weiteren guten Prozess-Viewer.quelle