Por que o flag -u não funciona para ps?

0

Estou executando o seguinte comando ps :

root@dor-desktop:/home/dor# ps u -t "$(tty)" -u mysql
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dor       2070  0.0  0.1  22436  5240 pts/0    Ss   20:29   0:00 bash
root      2411  0.0  0.0  56028  1916 pts/0    S    20:45   0:00 su
root      2419  0.0  0.0  19532  2276 pts/0    S    20:45   0:00 bash
root      2488  0.0  0.0   4108   668 pts/0    S    20:51   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-networking --skip-grant-tables --user=mysql --b
mysql     2607  0.0  0.4 146552 19024 pts/0    Sl   20:51   0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --use
root      2672  0.0  0.0  15268  1224 pts/0    R+   20:59   0:00 ps u -t /dev/pts/0 -u mysql

Você pode ver que o comando solicita processos associados ao terminal atual e quem é o usuário mysql . Mas eu pego os dois tipos de processos!

Como posso separar? Eu quero apenas o processo que iniciou pelo usuário mysql .

Eu encontrei o seguinte comando: ps -C mysqld , que me dá o que eu preciso, mas eu prefiro entender o que está errado com o primeiro comando.

    
por Dor 01.06.2013 / 20:05

2 respostas

1

But I get both types of processes!

Bastante surpreendente, considerando que a página man diz:

Except as described below, process selection options are additive. The default selection is discarded, and then the selected processes are added to the set of processes to be displayed. A process will thus be shown if it meets any of the given selection criteria.

    
por 01.06.2013 / 20:41
0

Como HaukeLagin explicado , isso é normal. Uma maneira fácil de contornar isso é analisar o ps output:

ps u -t "$(tty)" | gawk '$1 == "mysql" || $1 == "USER"' 
    
por 01.06.2013 / 20:49

Tags