Encontrando PIDs
Existem outras ferramentas em vez de ps
para pesquisar processos com base em seus nomes.
$ pgrep name
Exemplo
$ sleep 100 &
[1] 2556
$ pgrep sleep
2556
Acima, podemos ver o processo chamado sleep
é iniciado e, em seguida, em segundo plano. Se usarmos pgrep
para procurar processos com esse nome, receberemos seu PID.
Verificando o status
Quanto à sua pergunta sobre a saída estar em branco. Quando os comandos retornam, muitas vezes eles retornam um código de status que fica armazenado em uma variável especial, $?
em shells Bourne, como Bash. Então você simplesmente precisa interrogar o conteúdo desta variável para descobrir se o nome do processo que você estava procurando estava presente ou não.
Exemplo
Exemplo semelhante usando sleep
novamente.
$ sleep 100 &
[1] 3228
Procure o PID de um processo chamado sleep
.
$ pgrep sleep
3228
Verifique sua variável de status, $?
, um zero significa que ela foi executada com êxito e encontrou o que procurávamos.
$ echo $?
0
Agora, se procurarmos por um processo falso chamado sleepy
.
$ pgrep sleepy
Não apenas não obtemos saída, mas a variável de status possui uma, denotando que o comando que executamos não teve êxito em encontrar o que procurávamos.
$ echo $?
1