Nginx 的 pid 文件默认路径因安装方式而异,可通过 nginx.conf 全局块中 pid 指令修改为绝对路径,需确保目录存在、权限合理且与 systemd 单元文件中 PIDFile= 一致,修改后须执行 nginx -t 验证并重启生效。

默认情况下,Nginx 的 pid 文件位于 /usr/local/nginx/logs/nginx.pid(源码编译安装)或 /var/run/nginx.pid(包管理器安装),但可通过配置灵活调整位置和权限。
修改 pid 文件路径
在 nginx.conf 的 全局块(main context) 中设置 pid 指令:
- 路径需为绝对路径,不能是相对路径
- 建议放在
/var/run/或/run/(systemd 系统推荐)等运行时目录下 - 确保父目录存在且 Nginx 主进程有写入权限
示例:
pid /run/nginx.pid;
确保目录可写且权限合理
Nginx 主进程(通常以 root 身份启动)需能创建并更新该文件。常见做法:
- 手动创建目标目录(如
/run/nginx),并设属主为root:root - 若使用
/run/nginx.pid,多数系统会自动清理重启后的内容,无需额外清理逻辑 - 避免将 pid 文件放在 NFS 或只读挂载点上
配合 systemd 管理时的注意事项
使用 systemd 启动 Nginx 时,pid 文件路径需与 systemd 单元文件中 PIDFile= 设置一致,否则 systemctl status 或 restart 可能异常:
- 编辑
/etc/systemd/system/nginx.service - 确认
PIDFile=行指向与nginx.conf中相同的路径 - 修改后执行
systemctl daemon-reload
验证与调试
修改后务必验证是否生效:
- 执行
nginx -t检查配置语法 - 重启 Nginx:
systemctl restart nginx或nginx -s reload - 检查文件是否生成:
ls -l /run/nginx.pid - 查看主进程是否使用该 pid:
ps aux | grep nginx并核对 PID 值


















