You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx已安装运行但命令找不到、systemctl无对应服务如何重启

问题说明

当前运行的Nginx为源码编译安装版本,部署路径为/usr/local/nginx-1.20.2/,未注册systemd服务单元,因此执行systemctl status nginx会提示服务不存在,属于正常现象。

重启方案

方案1:平滑重启(推荐,无业务中断)

平滑重启不会断开正在处理的用户请求,是生产环境优先选择的方式:

  • 先校验Nginx配置文件合法性,避免配置错误导致重启失败,执行命令:
    /usr/local/nginx-1.20.2/sbin/nginx -t -c /usr/local/nginx-1.20.2/conf/nginx.conf
    
    执行后返回syntax is ok、test is successful即代表配置无问题。
  • 校验通过后发送重载信号完成重启,执行命令:
    /usr/local/nginx-1.20.2/sbin/nginx -s reload -c /usr/local/nginx-1.20.2/conf/nginx.conf
    

方案2:硬重启(会中断业务,仅平滑重启失效时使用)

硬重启会先终止Nginx进程再重新启动,会中断正在处理的请求:

  • 停止现有Nginx进程,执行命令:
    /usr/local/nginx-1.20.2/sbin/nginx -s stop
    
  • 进程完全退出后重新启动Nginx,执行命令:
    /usr/local/nginx-1.20.2/sbin/nginx -c /usr/local/nginx-1.20.2/conf/nginx.conf
    

如果执行stop命令无响应,也可以直接终止master进程(你查询到的master进程PID为31334,注意不要加-9参数强杀,避免worker进程残留):

kill 31334

等进程退出后再执行上述启动命令即可。

可选优化:配置systemd服务实现统一管理

如果后续需要使用systemctl命令统一管理Nginx,可以手动创建systemd服务单元,操作步骤如下:

  • 创建服务配置文件,执行命令:
    vi /etc/systemd/system/nginx.service
    
  • 在文件中写入以下配置内容:
    [Unit]
    Description=Nginx Web Server
    After=network.target
    
    [Service]
    Type=forking
    PIDFile=/usr/local/nginx-1.20.2/logs/nginx.pid
    ExecStartPre=/usr/local/nginx-1.20.2/sbin/nginx -t
    ExecStart=/usr/local/nginx-1.20.2/sbin/nginx -c /usr/local/nginx-1.20.2/conf/nginx.conf
    ExecReload=/usr/local/nginx-1.20.2/sbin/nginx -s reload
    ExecStop=/usr/local/nginx-1.20.2/sbin/nginx -s stop
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
  • 保存退出后,重载systemd配置使服务生效,执行命令:
    systemctl daemon-reload
    

配置完成后就可以直接使用systemctl start/stop/restart/status nginx管理服务,执行systemctl enable nginx还可以设置Nginx开机自启。


内容的提问来源于stack exchange,提问作者lolololhahahahaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:33:21