Pull to refresh

Comments 34

UFO just landed and posted this here
UFO just landed and posted this here

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

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


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

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


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

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


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


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

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

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

Странно как-то — если запускать с параметрами фильтров то только по 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 скачивается. Но каково!
Sign up to leave a comment.

Other news