Começo o mousepad a partir do shell:
mousepad &
[1] 24289
verifique de onde vem:
which mousepad
/usr/bin/mousepad
inicie-o com o caminho:
/usr/bin/mousepad &
veja via ps:
ps v -C mousepad
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
24289 pts/3 S 0:00 3 62 85441 10964 1.0 mousepad
24292 pts/3 S 0:00 0 62 85433 10864 1.0 /usr/bin/mousepad
Como vemos, o invocado sem caminho é exibido sem caminho e começou com o PATH e, portanto, pode ser encontrado por
which mousepad
Simples assim, não é? Esperar! E se eu iniciar o mousepad no menu? Bem, pode ser especificado com ou sem o uso das configurações PATH. Eu tentei. Um início normal leva a um simples "mousepad" no ps v -C. Como ~ / bin é a primeira parte do meu PATH, crio um manequim lá e, voila, o manequim é iniciado no menu.
Mas e se você iniciar um programa que se apaga? Que não encontrará o programa excluído e reportará um programa errado, se houver um segundo no caminho.
Então essa é uma condição de corrida. Se você sabe que seus programas não excluir-se ou não são movidos enquanto você está investigando a sua localização, ps v -C NAMEe which NAMEdeve funcionar muito bem.
ps -C xmmsdeve tornar seu grep obsoleto.