Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在OS X上获取进程的完整路径?_Macos_Process_Path_Pid_Ps - Fatal编程技术网

Macos 如何在OS X上获取进程的完整路径?

Macos 如何在OS X上获取进程的完整路径?,macos,process,path,pid,ps,Macos,Process,Path,Pid,Ps,我知道我可以通过使用ps来获得流程的PID,但是如何找到该流程的完整路径呢 OSX有libproc库,可用于收集不同的 过程信息。为了找到一个给定路径的绝对路径 PID,可使用以下代码: 请参阅这篇博文:可以使用一种解决方案: which `ps -o comm= -p $PID` 其中$PID是要检查的进程的PID。已在OS X 10.8.2上测试。请尝试以下操作: sudo ls -l /proc/$(ps -e | grep $PROCESS_NAME | awk '{print $1}

我知道我可以通过使用
ps
来获得流程的
PID
,但是如何找到该流程的完整路径呢

OSX有libproc库,可用于收集不同的 过程信息。为了找到一个给定路径的绝对路径 PID,可使用以下代码:


请参阅这篇博文:

可以使用一种解决方案:

which `ps -o comm= -p $PID`
其中$PID是要检查的进程的PID。已在OS X 10.8.2上测试。

请尝试以下操作:

sudo ls -l /proc/$(ps -e | grep $PROCESS_NAME | awk '{print $1}')/exe

其中$PROCESS\u NAME是您要检查的进程名称。

更便携、更现代的版本:

command-v“$(ps-o comm=-p$PID)”
命令-v
取代了
,后者更便于携带

反勾号由
$(CMD)

另一种选择取决于GNU CoreUtils的
realpath

realpath/proc/$PID/exe

可能重复的您是否听说过
osxfuse
——存储库文件系统包含几个激动人心且有用的文件系统的源代码,供您浏览、编译和构建,如sshfs、procfs、AccessibilityFS等。我听说过(并使用过),但它并不存在。。。很多用户都没有安装。在10.7.5上也测试过。。。太棒了。但有时它似乎会返回相对路径。这是我做的测试:
$>它的'ps-o comm=-p81233`=>。/ft_minishell2
,我的意思是,它不是绝对路径中的完整路径。我不知道这是否是问题背后的最初想法。这是Mavericks。如果您在不同的位置有一个同名的可执行文件,尤其是不在您的路径上的可执行文件,这可能不准确。“which”在PATH env变量中搜索give可执行文件,但它不一定是进程列表中显示的那个@conradk它是“相对”的原因是因为它在您当前的目录中。无论如何,不具有绝对路径结果的换行符?(通过10.12.6测试)@Michael如果想在脚本中使用它,最好通过
sed
删除它。
which `ps -o comm= -p $PID`
sudo ls -l /proc/$(ps -e | grep $PROCESS_NAME | awk '{print $1}')/exe