Как стать автором
Обновить

Комментарии 34

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Top не предлагать?)

top htop glances atop

Перепись юзеров, не прочитавших пост дальше заголовка? Ни одна из этих утилит не занимается тем, чем занимается procmon.

htop в сочетании с strace/lsof (которые вызываются прямо из него на нужный процесс одной кнопкой) позволяет практически то же самое.


Если он делает что-то ещё, кроме того что позволяют htop + lsof + strace — то в статье про это ни слова.

Вот strace это уже реальный аналог, да.


Но при этом procmon, похоже, умеет отслеживать сразу все процессы. Такое есть в strace?

Все сразу — из коробки нет, но может отслеживать больше чем один одновременно.


Поскольку на практике это редко бывает нужно (именно все "одним кликом"), я думаю это вполне адекватный эквивалент. Но если очень хочется то можете прицепить его к systemd/sysvinit перед запуском всего остального и отслеживать вообще всё с момента запуска системы (ценой замедления), или получить список всех процессов и подцепить его к каждому одновременно (тоже тормозов добавит).


Для более экзотических случаев, когда не можете себе позволить риск упустить быстроумирающий процесс, не знаете его родителя и не можете трассировать при загрузке — ebpf или exectrace помогут.

Вы путаете с Process Explorer
Прямой альтернативы — никакой нет.
Отдельный функционал разбросан по разным утилитам, но порт Procmon (если он будет полным и будет охватывать весь функционал виндовой версии) будет востребован среди сисадминов. Когда надо привычнее или просто какую-то отдельную область — ну да, запустят htop или что-то подобное. У меня (правда, это было давно) в хостинге была последовательность ps/pstree, cat /proc/..., strace например. Это если надо увидеть что за процессы на сервере, кто родитель, что они из себя представляют (не мимикрия ли это) и что читают/пишут. Если на сервере загрузка повышена и он дохнет по CPU/RAM/диску — это уже к top и его модификациям сначала. Было еще что-то для определения сетевой загрузки скопом (ntop?) но уже точно не припомню.
Для сетевой загрузки неплох iftop. Для дисковой — iotop.
есть, довольно давно, sysdig
Вообще это так и задумано, что в линуксе стараются избегать комбайнов которые могут все. Такова его философия. Делают мелкие утилиты, которые делают мало, узконаправлено, но делают это хорошо. И делают так, что их комбинировать при использовании можно. Тогда при умелом использовании с этими мелкими утилитами можно сделать больше чем в комбайнах.

Микрософт же решила как обычно в своих традициях комбайн запилить. Где шаг влево, шаг вправо от заложенного сценария — расстрел. Ну пусть будет с другой стороны, как обучающее пособие.
sysdig посмотрите
perf trace

Странно как-то — если запускать с параметрами фильтров то только по PID, по имени процесса не предусмотрено — на мой взгляд неудобно :(

Есть что-то неуловимо виндузячее в утилите зависящей от -dev версий пакетов.
На самом деле сам пакет зависит только от ncurses, libstdc++ и libc, но зато в нём один ман файл претендующий на hello world и исполняемый файл весом 50 мегабайт.

Потому что это Enterprise.
Поэтому пишут не какие-то там "Just for fun", а настоящие боевые программисты.
PS. будьте аккуратнее с комментариями, покусились на святое.

Ну, оно работает. Как PoC конечно неплохо, но пока не более — дескрипторы вместо имён файлов, тормоза.

Да вы чё, реально же полезная прога. Хоть и в целом неодобрительно отношусь в microsoft'у, но тут стоит признать что это полезный инструмент, и сделанный без подтекстов вида "чтобы переманить их потом на винду". Хотя, с другой стороны, sysinternals то не совсем microsoft, хоть и входит в их состав.
Варианты с top+strace+ещё неизвестно что это, конечно, в некотором роде альтернатива, но ей в плане итогового удобства далеко до монолитного продуманного приложения, где НЕ надо делать никаких донастроек и интеграций, путь даже и коротких. А ещё она будет работать когда у вас вдруг pid'ы закончатся или ещё что, мешающее запускать новые процессы.

Объясняю: Марк Русинович, (собственно sysinternals) так ломал Windows, выпуская каждый день уязвимости нулевого дня, что его проще было купить, чем успокоить. К моменту покупки Русиновича, у него уже был RegMon / FileMon. ProcMon — просто обобщение + дополнение.

Эх, это были славные времена, когда Embedded объект офиса, запускался прямо в письме Outlook, вместе с VBA, а пароли лежали в pwd файлах ))
Ну как ломал — не ленился писать о том, что видит, и да, у Microsoft не так много системных утилит, столь же функциональных, сколь надёжных, интуитивных и реактивно-легковесных, как утилиты Руссиновича.

Перетаскивание рабочих инструментов кмк свидетельствует о серьёзности планов Microsoft — нельзя добиться вменяемых результатов на чужеродной системе, не имея правильных инструментов.
Procmon для Linux — это ещё ничего, просто стоять/бояться. Вот когда притащат PowerShell будет интереснее.
Да, опростоволосился, не ожидал такой настырности.
Ну тем серьёзнее оказывается подход, отвлекать разработчиков на портирование беспричинно не стали бы.
Эта утилита — воплощение windows-подхода, прямо противоречащего идеям unix о том, что каждая утилита должна выполнять ровно одну функцию, но делать это хорошо, а задача оболочки обеспечить пользователя удобными способами их (утилит) комбинирования. В теории, можно знать несколько утилит и на их основе решать массу задач, чем изучать каждое изолированное приложение отдельно. На практике, к сожалению, нынче слишком много всяких утилит с разношестными интерфейсами стало, так что ни один подход явно не лучше другого.

По-моему, дистрибутивы медленно, но верно тоже отходят от этого принципа. В частности systemd, который решает несколько задач сразу не самым прозрачным способом. ИМХО, конечно.

Философия — это не догма, там где это ухудшает UX она имеет мало смысла, иначе можно дойти до того чтобы масштабировать картинки, менять контрастность и прочие фильтры будет одно приложение на фильтр, а не какой-то один gimp, или даже посмотреть список файлов и посмотреть их атрибуты нужны будут две отдельные утилиты (причём мне известны люди которые верят что именно так "правильно").

«ЕСЛИ НЕ МОЖЕШЬ ПОБЕДИТЬ ТОЛПУ — ВОЗГЛАВЬ ЕЕ». Н. Макиавелли

Из какого труда Макиавелли эта цитата?

убил два часа. На CentOS 8 это без бубна не собрать.

Вначале bcc не собирался, потом плюнул на него и поставил yum'ом.
В итоге procmon тоже собрать не смог. Что самое обидное make на 96% вываливается.

cmake вручную собирать пришлось (а точнее из snap поставил). В репозитории старая версия. Все остальное, включая bcc, пакетным менеджером ставил. Очевидно версии не срослись…
Это их подход. Сделали ПО, работающее «только на убунте 18»…
КАКониэтосмоглисделать? :)
Забавная шутка получилась сегодня — пытался скачать procmon для Windows с компьютера под управлением Windows 7. Получил сообщение: «Это содержимое больше не обновляется регулярно» и предложение перейти к рекомендуемой версии, которой оказался раздел сайта «Microsoft Learn». Был неприятно удивлён, ведь последняя версия датируется сентябрём 2017 г. и вполне актуальна.
К счастью, пока что с procmon и другими утилитами SysInternals всё в порядке, из под Windows 10 скачивается. Но каково!
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости