Как узнать, откуда (из какого каталога) запускается процесс?

Как узнать, откуда (из какого каталога) запускается процесс?

Я запускаю симуляцию, которая должна начаться в каком-то каталоге, но не помню, из какого каталога я запустил симуляцию. Я использую python для запуска симуляции, поэтому

ps aux | grep PID

показывает только, где находится исполняемая программа. (/usr/bin/python). Однако я хочу знать, где команда выполняется с самой начальной точки, где находится файл, который я запускаю.

Буду очень признателен за любые полезные комментарии!

Спасибо :)

решение1

Возможно, вы захотите использовать historyкоманду, чтобы увидеть, какую команду вы на самом деле использовали?

решение2

Чтобы увидеть путь к скрипту Python, вы обычно можете сделать это с помощью ps(используя wопцию ,wide, если необходимо):

~% ps ugxw | grep python
romano    2136  0.0  0.2  10524  4132 ?        S    09:13   0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano    5839  0.0  0.0   4440   832 pts/1    S+   10:00   0:00 grep python

Например, процесс 2136 — это скрипт /home/romano/software/wallpap/bg_slideshow.py. Если вы хотите узнать, какой рабочий каталог у процесса, выполните

~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano

Процесс запущен с /home/romanoтекущим каталогом.

В файле /proc/2136/cmdlineесть полная спецификация командной строки --- то же самое, что вы видите в ps, с командами и аргументами, разделенными байтами со значением 0 (для сохранения пробелов). Вы можете увидеть это на своем терминале с помощью

% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py % 

где «tr» печатает пробел для каждого найденного символа «nul» (ложный % в конце возникает из-за того, что файл не заканчивается символом новой строки).

Файловая система /proc — действительно полезный инструмент, полная документация немного «сложновата», но часто бывает полезно иметь на нее ссылку:https://www.kernel.org/doc/Documentation/filesystems/proc.txt

решение3

Используйте whichкоманду. Например, which ifconfigвыводит местоположение команды ifconfig.

Связанный контент