代码改变世界

linux自启动

2025-08-15 10:11  Spiderman25  阅读(16)  评论(0)    收藏  举报

如果你没有通过 yum 安装 Nginx,而是通过源代码编译或其他方式安装的 Nginx,你仍然可以设置 Nginx 开机自启动,但方法会稍有不同。以下是适用于这种情况的步骤:

1. 手动创建系统服务文件(systemd

如果你使用的是 systemd(如 CentOS 7 及更高版本,Ubuntu 16.04 及更高版本),你可以手动创建一个 systemd 服务文件,来使 Nginx 在系统启动时自动启动。

步骤:

  1. 创建 Nginx 服务文件
    /etc/systemd/system/ 目录下创建一个 Nginx 服务文件 nginx.service

    sudo nano /etc/systemd/system/nginx.service
    
  2. 服务文件内容
    将以下内容粘贴到该文件中:

    [Unit]
    Description=The nginx HTTP and reverse proxy server
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    PIDFile=/usr/local/nginx/logs/nginx.pid
    
    [Install]
    WantedBy=multi-user.target
    
    • 这里假设你是将 Nginx 安装在 /usr/local/nginx 目录中。如果你安装的路径不同,请根据实际情况修改 ExecStartExecReloadExecStopPIDFile 的路径。
  3. 重新加载 systemd 配置
    在创建完服务文件后,运行以下命令让 systemd 重新加载服务配置:

    sudo systemctl daemon-reload
    
  4. 启用 Nginx 开机自启动
    设置 Nginx 开机自启动:

    sudo systemctl enable nginx
    
  5. 启动 Nginx 服务
    启动 Nginx 服务:

    sudo systemctl start nginx
    
  6. 检查 Nginx 服务状态
    确认 Nginx 是否正在运行:

    sudo systemctl status nginx
    

2. 如果是使用 init.d 脚本

如果你的系统不支持 systemd,可以使用 init.d 脚本来设置开机自启动。

  1. 创建 init.d 脚本
    创建一个名为 nginx 的启动脚本,在 /etc/init.d/ 目录下:

    sudo nano /etc/init.d/nginx
    
  2. 写入启动脚本内容
    将以下内容粘贴到文件中:

    #!/bin/bash
    # nginx init script
    # chkconfig: 2345 20 80
    # description: Nginx is an HTTP and reverse proxy server.
    
    start() {
      echo "Starting nginx"
      /usr/local/nginx/sbin/nginx
    }
    
    stop() {
      echo "Stopping nginx"
      /usr/local/nginx/sbin/nginx -s stop
    }
    
    restart() {
      stop
      start
    }
    
    status() {
      ps aux | grep nginx
    }
    
    case "$1" in
      start)
        start
        ;;
      stop)
        stop
        ;;
      restart)
        restart
        ;;
      status)
        status
        ;;
      *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
    esac
    
    • 根据你的 Nginx 安装路径修改 /usr/local/nginx/sbin/nginx
  3. 赋予脚本执行权限

    sudo chmod +x /etc/init.d/nginx
    
  4. 设置自启动

    sudo chkconfig --add nginx
    sudo chkconfig nginx on
    
  5. 启动 Nginx 服务

    sudo service nginx start
    

3. 总结

  • 如果使用的是 systemd,你需要手动创建一个服务文件(nginx.service)来设置开机自启动。
  • 如果你的系统不支持 systemd,可以使用 init.d 脚本来实现类似功能,并使用 chkconfig 设置开机自启动。

这些方法都能确保 Nginx 在 Linux 系统启动时自动启动。