Как найти путь к диску процесса

Если процесс запущен, как я могу найти его путь к диску, используя команду на терминале? В моем случае запущена синергия процесса, и я хочу найти ее на диске

ps -ef 

показывает путь других процессов, но не этот.

2 ответа

Если вы знаете PID процесса, вы можете проверить содержимое его /proc запись, в частности, exe файл:

$ ls -l /proc/$$/exe   
lrwxrwxrwx 1 muru muru 0 Apr 17 19:41 /proc/13339/exe -> /usr/bin/zsh
$ sudo ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 Apr 17 17:40 /proc/1/exe -> /usr/lib/systemd/systemd

IIRC что ps -ef отчеты являются аргументами процесса (начиная с argv[0], которая является командой, вызываемой как есть), но процесс может переписать свои аргументы. следовательно ps -ef может быть неточным.

Ты написал:

Если процесс запущен, как я могу найти его путь к диску, используя команду на терминале? В моем случае запущена синергия процесса, и я хочу найти ее на диске

Откройте терминал и выполните следующие команды, в зависимости от того, как вы хотите продолжить. Я использую синергию, потому что вы упомянули это:

  • Если вы действительно хотите использовать PS, то вы можете использовать эту команду.

    ps -o command= -p "$(ps -C synergy -o pid=)" | xargs which
    
  • Если вы хотите знать, где находится исполняемый файл, используйте эту команду

    which synergy
    
Другие вопросы по тегам