Я обнаружил, что моя аналогичная проблема связана с файл конфигурации fuse в:
/etc/fuse.conf
Я не комментировал:
user_allow_other
Проблема в том, что по умолчанию pgrep
ищет только процесс name. Имя - это усеченная версия всей команды. Вы можете узнать, что это за имя, посмотрев /proc/PID/status
, где PID
- это идентификатор соответствующего процесса. Например:
$ ./aout_abcdefgh_ver27 &
[1] 14255 ## this is the PID
$ grep Name /proc/14255/status
Name: aout_abcdefgh_v
Так что да, pgrep
без флагов считывает только первые 15 символов имени исполняемого файла. Для поиска полной командной строки, использованной для его запуска, вам нужен флаг -f
(из man pgrep
):
-f, --full
The pattern is normally only matched against the process name.
When -f is set, the full command line is used.
Итак, если вы используете -f
:
$ pgrep -f aout_abcdefgh_ver27
14255