Список всех запущенных процессов можно сгенерировать с помощью инструмента ps
, например:
# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May16 ? 00:00:01 /sbin/init
root 2 0 0 May16 ? 00:00:00 [kthreadd]
root 3 2 0 May16 ? 00:00:55 [ksoftirqd/0]
root 6 2 0 May16 ? 00:00:00 [migration/0]
... snip ...
, чтобы увидеть, какие файлы в настоящее время открыты для ВСЕГО процесса, который вы можете сделать;
# lsof -P | grep REG
.... lots of output
если вы хотите, чтобы все файлы открывались какой-то конкретной службой, например httpd, вы можете сделать что-то вроде этого;
# ps axo comm,pgrp | grep httpd
httpd 15791
, а затем используйте этот идентификатор группы процессов, чтобы выбрать все файлы, открытые httpd и его дочерними элементами, например:
# lsof -P -g 15791 | grep REG
httpd 24774 15791 apache mem REG 253,0 15104 141783 /lib64/libcom_err.so.2.1
httpd 24774 15791 apache mem REG 253,0 177680 171892 /lib64/libk5crypto.so.3.1
httpd 24774 15791 apache mem REG 253,0 911816 171937 /lib64/libkrb5.so.3.3
... snip
запустите верхнюю команду и затем нажмите c
Будет выведен список, какая команда выполняется для процесса.
Кроме этого, вы всегда можете перенаправить всю информацию о запущенном процессе сверху в файл
top -b -c -M>
Это перечислит все процессы с командой и памятью в МБ, чтобы у вас был чистый вывод.
Кроме того, вы можете поместить эту команду в сценарий и запустить это в соответствии с вашими потребностями через cron.
Спасибо .. Сандип