$ pgrep -x ./hello_world $ echo $? 1
O motivo pelo qual a primeira expressão não corresponde é porque você está pedindo para o pgrep
procurar uma correspondência de nome de processo exata (com o nome do processo sendo hello_world
em seu exemplo), mas você fornece ./hello_world
como cadeia de pesquisa.
$ pgrep -x hello_world $ echo $? 1
Por que a segunda pesquisa não funciona para você, não tenho ideia. Ele funciona no Ubuntu 14.04, então ou há algum tipo de erro no seu post, ou há um bug na versão mais recente:
$ ./dd &
[1] 6377
$ pgrep -x dd
6377