centos7添加开机自启案例及原理
一、教程
使用 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