ps
pode ser filtrada de várias formas. Para ver seus processos, você poderia filtrar pelo usuário / uid. página de manual relevante abaixo -
U userlist Select by effective user ID (EUID) or name.
This selects the processes whose effective user name or ID is in userlist. The effective user ID describes the user
whose file access permissions are used by the process (see geteuid(2)). Identical to -u and --user.
-U userlist Select by real user ID (RUID) or name.
It selects the processes whose real user name or ID is in the userlist list. The real user ID identifies the user
who created the process, see getuid(2).
-u userlist Select by effective user ID (EUID) or name.
This selects the processes whose effective user name or ID is in userlist. The effective user ID describes the user
whose file access permissions are used by the process (see geteuid(2)). Identical to U and --user.
Para identificar threads do kernel vs usuário, pode depender da versão do kernel. Na minha máquina Ubuntu (3.5.0-30-generic), posso excluir threads do kernel excluindo filhos do kthreadd (pid = 2). O pid de kthreadd pode diferir em kernels 2.6 - no entanto, você poderia apenas usar o pid relevante. Como exemplo, para obter uma lista de todos os processos que não têm ppid = 2, eu faço (para opções para alimentar a -o, verifique a man page) -
ps -o pid,ppid,comm,flags,%cpu,sz,%mem --ppid 2 -N
Você também pode filtrar usando grep ou awk. A outra maneira (não usar ps) para identificar threads do kernel é verificar se / proc // maps ou / proc / cmdline está vazio - ambos estão vazios para threads do kernel. Você precisará de privilégios de root para fazer isso.