如何在 Linux 中记录所有进程启动?

Bra*_*tte 60 linux logging

我想获取在启动时启动的所有进程的日志以及启动时使用的参数。这在Linux中可能吗?

Mik*_*kel 49

你的起点应该被审计。

尝试这样的事情:

apt-get install auditd
auditctl -a task,always
ausearch -i -sc execve
Run Code Online (Sandbox Code Playgroud)

  • 我在实时服务器上尝试了这个,我有效地杀死了它,几乎没有响应。我几乎没有设法删除此规则并使服务器再次响应 (2认同)

Evg*_*eev 12

我需要这样做,除了 (1) 我不需要时间和 (2) 我只对由给定进程启动的进程及其子进程和后续后代感兴趣。此外,在我使用的环境中,不可能获得auditdaccton,但有valgrind.

在命令行上为感兴趣的进程添加以下前缀:

valgrind --trace-children=yes
Run Code Online (Sandbox Code Playgroud)

您需要的信息将在 STDERR 上显示的日志输出中。

  • 默认情况下,valgrind 使用 `memcheck` 工具运行。要禁用该工具及其相关日志记录,并仅打印新命令的创建(除了程序的通常输出之外),请改用以下命令:`valgrind --tool=none --trace-children=yes [命令和参数在这里]`。每当产生子进程时,Valgrind 将记录完整的命令,包括传递给它的参数。 (4认同)

小智 7

您可以为此使用史努比

它安装起来非常简单,并且从 2.x 开始它可以记录任意数据(参数、环境变量、cwd 等)。

披露:史努比维护者在这里。