这是在Linux上查看进程path的命令
ps -auxwe | grep 24466 ( 24466 is only example )
但请指教是否可以查看在Solaris上运行进程的path
如果是的什么Solaris的PS语法?
你可以在solaris和linux中使用pwdx。
pwdx <pid_number>
例:
pwdx $$ 25711: /export/home/pippo
/ usr / ucb / ps auxwwww | grep 6851在SunOS servername01上为我工作5.10 Generic_147440-25 sun4u sparc SUNW,Sun-Fire-V490
我怎样才能知道正在运行的进程的绝对path?
如果通过“绝对path”指的是正在运行的二进制文件的完整path,则可以在我已安装的Solaris 11副本上运行:
pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'
将PIDreplace为您感兴趣的进程的进程ID。
pmap发出进程的地址映射,包括映射源文件的完整path。 这包括实际的二进制,这是输出的第一个映射线。 输出的第一行包含进程标识和进程参数。 请注意,进程参数不足以完全识别正在运行的可执行文件的完整path。 实际地址空间映射的前几行是来自实际执行二进制文件的映射,列出了二进制文件的完整path。
不幸的是,您需要读取进程映射来获取这些信息。 我不知道有什么方法可以在没有访问权限的情况下获得所需内容。
编辑:Solaris 11上还有/proc/[PID]/path/a.out ,它是实际二进制文件的软链接:
在bash中:
bash-4.1$ readlink /proc/$$/path/a.out /usr/bin/bash
请注意,/ /proc/$$/path/a.out比/proc/self/path/a.out更好:
bash-4.1$ readlink /proc/self/path/a.out /usr/bin/readlink
不幸的是,如果您无法通过pmap访问/proc/[PID]/path/a.out ,那么您可能无法访问/proc/[PID]/path/a.out ,作为/proc/[PID]/path的权限我的Solaris 11安装都是500 – 只有拥有者和根目录对目录具有读取和执行权限。