Получить информацию об ОС в согласованном формате - PullRequest
0 голосов
/ 06 октября 2011

Для контекста, в настоящее время я использую OS X, но мне также интересно узнать, как эта проблема может быть решена в Linux.

Во многих случаях я хочу запросить информацию, например:

  • Идентификатор процесса, прослушивающего определенный порт.
  • Объем памяти, используемой конкретным процессом.
  • Любая другая информация, касающаяся системных ресурсов и т. Д.

Я могу добиться этого относительно легко, используя команды оболочки (ps, lsof и т. Д.).

Моя проблема в том, что эти команды неизменно возвращают стену отформатированного текста, обычно напоминающего таблицу. Это хорошо для быстрых команд терминала.

Однако, когда я использую эти команды при разработке приложений, мне приходится разрезать и нарезать кубики результатов, чтобы получить точную информацию, которая мне нужна. В некоторых случаях результаты форматируются таким образом, что их трудно анализировать.

Есть ли способ запрашивать информацию об ОС, которая возвращает результаты в согласованном и простом для анализа формате? Например, я был бы счастлив с чем-то похожим на CSV, JSON, XML и т. Д.

Я надеюсь, что ответом не будет: «Так оно и есть».

Спасибо

1 Ответ

0 голосов
/ 07 октября 2011

В Linux можно прочитать информацию, связанную с процессом, и некоторые параметры можно записать в файловую систему proc. Вам все равно придется анализировать результаты

/ proc / (pid) / (параметр)

но я думаю, это лучше, чем выполнение команд оболочки из вашей программы.

man proc

для получения более подробной информации.

...