当你使用 ps -ef | grep nginx 并看到类似 ./nginx 的输出时,这表示当前运行的 Nginx 进程的启动路径是相对路径。为了找到 nginx 程序的确切位置,你可以采取以下步骤:
方法一:通过 /proc 文件系统
既然你知道了进程ID(PID),可以利用 /proc/[pid]/exe 符号链接来查找可执行文件的绝对路径。
首先确定你从 ps -ef | grep nginx 命令得到的 PID。
使用如下命令获取可执行文件的路径:
readlink -f /proc/[pid]/exe
将 [pid] 替换成实际的 Nginx 进程的PID。
例如,如果PID为1234,则命令应该是:
readlink -f /proc/1234/exe
方法二:直接查找
如果你在命令行中看到的是 ./nginx,意味着 Nginx 是从当前工作目录启动的。你可以尝试进入那个目录然后查看是否存在 nginx 可执行文件。首先,你需要知道该进程的当前工作目录。可以通过下面的方法做到这一点:
找到 Nginx 的PID。
查看 /proc/[pid]/cwd,这是一个指向进程当前工作目录的符号链接。
ls -l /proc/[pid]/cwd
这将显示Nginx启动时的当前工作目录。检查这个目录下是否存在 nginx 可执行文件。
方法三:使用 which 或 whereis
如果你有权限在系统上执行新命令,也可以尝试 which nginx 或 whereis nginx 来查找 Nginx 可执行文件的位置。但是,请注意这种方法只适用于查找那些在环境变量 $PATH 中的可执行文件,如果 Nginx 安装在一个非标准位置且不在 $PATH 中,这些命令可能无法找到它。
通常,最可靠的方法是通过 /proc 文件系统来定位正在运行的程序的确切路径。