Я знаю, что с помощью ps
я могу увидеть список или дерево текущих процессов, запущенных в системе. Но чего я хочу добиться, так это «следить» за новыми процессами, которые создаются при использовании компьютера.
По аналогии, когда вы используете tail -f
для отслеживания нового содержимого, добавленного к файлу или к любому входу, я хочу сохранить список отслеживания процесса, который в настоящее время создается.
Это вообще возможно?
bpfcc-tools
.Самый простой способ - включить аудит системных вызовов.
Смотрите следующую ссылку для деталей ,
Кто-нибудь знает простой способ мониторинга порождения корневого процесса | Ошибка сервера
Если вы отслеживаете все процессы, просто удалите
-F uid=0
детальЛоги пишутся в
/var/log/audit/audit.log
источник
CONFIG_PROC_EVENTS=y
Пример сеанса:
CONFIG_PROC_EVENTS
выставляет события в userland через сокет netlink .proc_events.c
GitHub upsatream , код адаптирован из: https://bewareofgeek.livejournal.com/2945.html
Однако я не думаю, что вы можете получить данные процесса, такие как UID, и аргументы процесса, поскольку они
exec_proc_event
содержат так мало данных: https://github.com/torvalds/linux/blob/v4.16/include/uapi/linux/cn_proc .h # L80 Мы могли бы попытаться немедленно прочитать его/proc
, но есть риск, что процесс завершится, и другой получит свой PID, поэтому он не будет надежным.Протестировано на Ubuntu 17.10, который
CONFIG_PROC_EVENTS=y
включен по умолчанию.источник
Вы, очевидно, можете следить за процессом, используя
strace
. Если вы знаете PID процесса, вы можете сделать:Обратите внимание на
-f
переключатель. Это поможет вам следить за вновь созданными процессами, которые являются потомками процесса, чей PID использовался в приведенной выше команде. Для получения информации о strace см. Этот вопрос.источник
Вы можете использовать
forkstat
как указано здесь: https://stackoverflow.com/a/40532202/781153Установить с помощью:
apt-get install forkstat
И просто беги:
forkstat
источник