笔记:我很熟悉这个 U&L 问答,标题为:我如何知道我正在 chroot 中运行?这听起来与我要问的相似,但与我要寻找的有细微的差别。那一个专注于进程本身检测它是否处于 chroot 环境中,我问的是一个进程如何发现另一个进程已 chroot。
正在调查一个不熟悉的服务器中的 apache 问题。的输出ps -ef
看起来像这样:
[belmin@server131 ~]$ sudo ps -ef | grep httpd
apache 14363 4082 0 14:04 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
apache 14365 4082 0 14:04 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
我查看了/usr/local/apache2/conf
配置,考虑到我们所看到的症状,这不是我所期望的。决定仔细检查init
脚本并注意到实际进程位于 chroot 监狱中。
chroot
为了将来的参考,有没有一种方法可以仅用 来确定进程是否在监狱中PID
?我怎样才能找到chroot
监狱的路径?
答案1
看着/proc/<pid>/root
。这是到进程根目录的符号链接。如果它没有链接到/
,则该进程处于 chroot 监狱中。