我有 4 台类似的 Linux 设备在私有网络上运行。Linux 由制造商定制开发。每台设备都有相同的基于浏览器的 GUI/应用程序,我可以通过其各自的 IP 地址(即 10.1.10.x)访问。我还可以通过 PuTTY、SSH 等完全访问每台设备。
在一台设备上升级到最新的 Linux 发行版后,我无法访问 GUI/应用程序。我想确定 GUI/应用程序在某台正常运行的设备上从哪里加载,以帮助我排除故障。如何确定运行 GUI/应用程序的文件夹/文件?
答案1
假设拥有 root 访问权限和或多或少功能齐全的用户空间,我将首先查看 的输出以netstat -anpt | grep LISTEN
确定监听端口 80/443 的程序的 PID。然后,我将查看ps -ef | grep <pid found in step 1>
以查看二进制文件的完整路径。如果它是/usr/bin
或其他标准路径中的某个东西,我将在 中查找配置/etc/
,如果它是供应商安装在 中的东西,例如/opt/
或 ,/usr/local/
我将在附近的目录中查找配置。
您还可以深入/proc/<PID>/fd
查看进程打开了哪些文件。这有时可以提示您在哪里查找配置文件。
另一个相关的调查方法是查找启动脚本/单元文件。在/etc/init.d/
(旧式) 或systemctl
(现代) 的输出中查找进程名称并读取相关脚本/单元文件 ( less
/ systemctl cat
) 可以提供有用的信息。