Processos atualmente executados por usuários

2

Estou à procura de um comando unix ou de um bash para obter os processos atualmente executados pelos usuários no sistema. Eu tentei o comando ps -Af , no entanto, todos os processos, incluindo os processos raiz, apareceram. Existe algum comando para obter os processos executados apenas pelo usuário? Caso contrário, preciso de ajuda para escrever um script bash para remover os processos raiz do comando ps -Af .

    
por anansharm 15.11.2013 / 00:33

6 respostas

0

Se você quiser remover root , apenas faça seu ps -Af e canalize-o com o grep:

ps -Af | grep -v root

Claro, isso é desleixado. Se você estiver executando um programa chamado troot, você perderá isso também. Você pode ser mais preciso usando awk e removendo qualquer linha que tenha raiz na coluna da direita. Eu não tenho a saída de ps -Af na minha frente, mas por causa do argumento, vamos supor que o userid esteja na terceira coluna. Nesse caso, você gostaria de fazer isso:

ps -Af | awk '$3 != "root" { print $0 }'
    
por 15.11.2013 / 00:42
2

Isso lhe dará todos os processos que não são de propriedade do root:

ps -N -u root 
    
por 16.11.2013 / 02:46
1

ps --deselect -U root . O --deselect inverte a lógica de -U root .

    
por 15.11.2013 / 14:17
0

como sobre ps -U <username> (funciona no MacOSX) ou pipe através do grep

ps -Af | grep -v 'root' deve mostrar todos os processos que não são de propriedade do root. Mas cuidado, o grep não estará limitado ao nome de usuário. Um processo que expõe algum caminho contendo "root" também será removido do resultado.

    
por 15.11.2013 / 00:36
0

Você deve tentar whowatch

Ele oferece uma boa visão geral dos usuários que efetuaram login, que processaram no momento e assim por diante

    
por 15.11.2013 / 12:04
-1

ps -Af | grep -v root não é perfeito. tente ps -Af | awk '$1 != "root" {print $0}'

    
por 15.11.2013 / 11:31

Tags