Мы можем установить GNU coreutils через brew
. Но нет ps
в утиле . Можем ли мы использовать GNU ps
в OS X?
Я хотел бы использовать GNU, так ps
как он имеет больше опций и возможностей.
macos
command-line
Санхьюн Ли
источник
источник
ps
илиps -ef
в терминале на OSX? у меня работает на OSX 10.7.5 без изменений, на двух разных машинах. Это в / bin / psps
потому что он имеет больше опций и возможностей.Ответы:
Портативной программы для PS не существует. Команда ps, доступная в linux, как уже упоминалось, из пакета "procps". Причина, по которой это нельзя перенести на OSX, состоит в том, что ядра Linux и OSX не предоставляют эту информацию одинаково. Linux использует псевдофайловую систему в / proc, тогда как OSX использует функцию sysctl. Другие системы могут использовать любой механизм, но предоставлять данные в другом формате, или могут потребовать, чтобы такие программы, как ps, читали непосредственно из памяти ядра.
В общем, нет никакого стандарта для того, как информация о процессе доступна для таких программ, как ps и top; поэтому программа должна быть разработана для конкретной операционной системы. Если в OSX ps отсутствует определенная функция, вам нужно будет найти другую программу, которая может это сделать, или написать ее самостоятельно (см. Руководство по sysctl, в частности KERN_PROC в качестве отправной точки) или изменить существующие ps. Команда, чтобы добавить функцию.
С другой стороны, если вы можете получить то, что вам нужно, анализируя выходные данные самой команды ps, вы можете написать переносимую программу - выходные данные с этой
-o
опцией достаточно надежны для всех платформ, особенно если вы ссылаетесь на стандарт UNIX для имена столбцов для использования.источник
/proc
файловая система единственным методом, который ядро Linux предоставляет для получения списка процессов, или существуют также отдельные системные вызовы, которые предоставляют эту информацию?Нет - поскольку его не существует. Относительно того, почему нет встроенного
ps
вcoreutils
пакет GNU , смотрите этот ответ на форумах Unix & Linux.Лучшая альтернативная формула, доступная через Homebrew
psgrep
:Тем не менее, вы можете использовать ,
psgrep
чтобы вести себя как OS иксыps
будет. Например:pgrep
также доступен черезbrew
, что синтаксически ближеps
, но менее эффективно, чемpsgrep
:Весь акцент мой.
источник
pgrep
также является частью последних версий OS Xtype -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
пакет либо из MacPorts или Homebrew обеспечиваетpgrep
иpkill
что то , что я лично искал, когда я появился здесь.ps
не является частью ядра GNU Coreutils согласно Википедии . Версия, которая поставляется с моим дистрибутивом Linux, похоже, от procps , но, похоже, в homebrew нет формулы для этого. Существуют формулы, дляpstree
которых можно получить отличные представления дерева, а такжеhtop
еще один хороший просмотрщик процессов.источник