使用 Vim 编辑器来创建和编辑 Nginx 的 systemd service 文件以及设置它开机自启动时,你可以按照以下步骤操作:
步骤 1:创建 Nginx 的 .service 文件
打开终端并使用 Vim 编辑器创建 Nginx 的 .service 文件:
sudo vim /etc/systemd/system/nginx.service
这将使用 Vim 编辑器打开一个新文件。
进入插入模式,按下 i 键,并添加以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server # 服务的描述信息
After=network.target remote-fs.target nss-lookup.target # 在以下目标之后启动服务
[Service]
Type=forking # 服务类型为 fork 模式,适用于 NGINX
ExecStartPre=/usr/local/nginx/sbin/nginx -t # 在启动之前检查配置文件的语法是否正确
ExecStart=/usr/local/nginx/sbin/nginx # 启动 NGINX 服务的命令
ExecReload=/usr/local/nginx/sbin/nginx -s reload # 重新加载配置的命令
ExecStop=/usr/local/nginx/sbin/nginx -s quit # 停止 NGINX 服务的命令
PrivateTmp=true # 使用私有的临时文件系统
[Install]
WantedBy=multi-user.target # 在多用户模式下启动
这是一个典型的 Nginx systemd service 文件。确保根据你的 Nginx 安装路径进行必要的更改。
退出插入模式,按下 Esc 键。
输入 :wq 并按下 Enter,以保存文件并退出 Vim 编辑器。
步骤 2:添加 Nginx 的开机自启动
通过以下命令启用 Nginx 服务开机自启动:
sudo systemctl enable nginx
这会将 Nginx 添加到系统启动服务列表中,从而在系统启动时自动启动 Nginx。
步骤 3:查看 Nginx 的开机自启动状态
要查看 Nginx 是否已成功设置为开机自启动,可以使用以下命令:
sudo systemctl is-enabled nginx
如果输出结果为 enabled,则表示 Nginx 已成功设置为开机自启动。
现在,你已经成功使用 Vim 编辑器创建了 Nginx 的 systemd service 文件,将它设置为开机自启动,并查看了 Nginx 的开机自启动状态。Nginx 将在系统启动时自动启动。如果需要进一步管理 Nginx 服务,可以使用 systemctl 命令来启动、停止、重启和查看服务的状态。
通过执行以下命令将Nginx服务添加到系统的启动服务列表中:
sudo systemctl enable nginx
这个命令实际上在系统的 /etc/systemd/system 目录下创建了一个符号链接(symbolic link)到Nginx服务单元文件(nginx.service)。这个符号链接位于/etc/systemd/system 目录下的 multi-user.target.wants 子目录中。
系统启动时,Systemd初始化系统管理的服务。当它启动到指定的 target(例如multi-user.target)时,会检查该 target 下的 wants 子目录中的服务,并自动启动这些服务。因此,通过在 multi-user.target.wants 子目录中创建符号链接,Systemd会在启动到multi-user.target时自动启动Nginx服务。
这就是为什么执行 sudo systemctl enable nginx 命令可以实现开机自启的原因。Systemd会根据服务配置文件中的信息,将服务添加到启动目标中,从而在系统启动时自动启动该服务。这个过程使得管理开机自启动服务非常方便。
systemctl list-unit-files --type=service | grep enabled |grep nginx