descobre se outros usuários estão executando o comando watch na máquina na qual o MyOwnCommand está sendo executado

0

Eu quero saber se existem outros usuários que estão executando watch na mesma máquina na qual o comando X está sendo executado. Como posso fazer isso?

    
por Pino 25.05.2015 / 11:44

1 resposta

0

Para ver quais processos estão sendo executados em uma máquina, você pode usar ps . Este é um comando com um grande número de opções, então você pode querer dar uma olhada em man ps para aprender um pouco sobre isso.

Para verificar se alguém está executando watch , você faria:

 $ ps aux | grep -w watch
terdon   15915  0.0  0.0  15912  2676 pts/4    S+   15:58   0:00 watch ls
terdon   16123  0.0  0.0  13948  2264 pts/5    S+   15:58   0:00 grep --color -w watch

O -w informa grep para corresponder apenas palavras inteiras. Caso contrário, processos como watchdog também seriam listados. No entanto, isso também retorna o próprio processo do grep. Para evitar isso, você pode usar pgrep :

$ pgrep -xl watch
15915 watch

O -x procura apenas correspondências exatas e o -l também lista o nome do processo e não apenas seu PID.

Agora, se você quiser verificar os dois MyOwnCommand e watch , poderá fazer:

$ pgrep MyOwnCommand >/dev/null  && pgrep -xl watch
15915 watch

O && significa que o segundo pgrep será executado somente se o primeiro for bem-sucedido, se MyOwnCommand estiver em execução. O >/dev/null descarta a saída do primeiro pgrep .

    
por terdon 25.05.2015 / 15:03