У меня есть приложение, которое запускает ряд процессов nodeJs. Не все процессы запускают один и тот же JS-код, существует около трех типов «ролей» для процессов. В настоящее время, если я запускаю что-то вроде htop
Чтобы посмотреть на использование ЦП, у меня нет возможности различить разные выполняемые скрипты (например, если один из них использует много ЦП, у меня нет возможности узнать, какой JS-скрипт запущен в процессе узла).
Может ли кто-нибудь предложить метод, с помощью которого я мог бы определить, какой JS-скрипт запускает конкретный процесс узла? (желательно через оболочку).
Если все эти процессы являются одним и тем же файлом сценария или исполняемым двоичным файлом, невозможно сказать, потому что эта информация хранится «внутри» самой программы. Вы могли бы косвенно сделать это, посмотрев на файлы, открытые процессом (lsof) или открытые сетевые соединения (netstat). В зависимости от того, что делает сценарий, подобная вторичная информация может дать подсказки.
С другой стороны, если каждый сценарий на самом деле является отдельным исполняемым файлом в вашей системе, то вы можете извлечь необходимую информацию из / proc / [pid] / cwd, / proc / [pid] / cmdline и / proc / [ pid] / окружающая среда.
Если ничего не помогает, вы можете пойти по сложному пути использования отладчика Gnu (gdb) для запущенных процессов.