Я запускаю коврик для мыши из оболочки:
mousepad &
[1] 24289
проверьте, откуда это берется:
which mousepad
/usr/bin/mousepad
начните с пути:
/usr/bin/mousepad &
посмотри через пс:
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
Как мы видим, тот, который был вызван без пути, отображается без пути и начинается с PATH, и поэтому должен быть найден
which mousepad
Все просто, не правда ли? Подождите! Что делать, если я запускаю коврик для мыши из меню? Ну, это может быть указано с или без использования параметров PATH. Я старался. Нормальный запуск приводит к простой «коврик для мыши» в ps v -C. Поскольку ~ / bin является первой частью моего PATH, я создаю там пустышку, и, вуаля, пустышка запускается из меню.
Но что, если вы запустите программу, которая удаляет себя? Который не найдет удаленную программу и сообщит о неправильной, если в пути есть секунда.
Так что это условие гонки. Если вы знаете , что ваши программы не удалять себя или не перемещаются , пока вы исследуете свое местоположение, ps v -C NAMEи which NAMEдолжны работать очень хорошо.
ps -C xmmsдолжен сделать ваш grep устаревшим.