获取 Linux 系统上用户启动的任务列表

获取 Linux 系统上用户启动的任务列表

我需要获取由用户启动的正在运行的任务。我尝试了几个命令,例如

xlsclients

此命令几乎满足了我的需求,但缺少用户信息。它一次性列出所有任务(实际上是窗口),但不包含用户名。

ps aux -u *username*

这给出了用户的进程,但也包括所有系统任务,例如:

/sbin/getty -8 38400 tty4
/usr/sbin/gpm -m /dev/input/mice -t exps2 

ETC。

所以我想列出用户运行的任务但不包括与系统相关的任务。

答案1

如果你想要非孤儿流程:

  • pgrep -u "$USER"打印当前用户启动的 PID
  • pgrep -u "$USER" -P 1打印当前用户启动的孤立 PID

结合这些,你可以获得当前用户启动的非孤立 PID:

pgrep -u "$USER" | grep -Fvx "$(pgrep -u "$USER" -P 1)"

您可以将结果列表传递到pstop其他程序中以获取每个进程的详细信息。

相关内容