为编译安装的Tengine(nginx)添加到Systemd启动服务

Tengine是由淘宝网所发起的一个项目,是一个深度定制化的Nginx网站服务器,在Nginx原有的基础上对响应速度、高并发等场景进行了更深层的优化。更多介绍请参见Tengine官方站点

官网的Tengine默认都是以源码方式提供,我们在编译安装后并不能直接启动服务,所以,需要将其加入系统的开机启动项目中,以实现systemctl系统调用的所有功能(start/stop/restart/status等)

Author:Kevin

BLOG:www.zhuyongci.com

安装Tengine

关于安装,可直接参考官方链接:安装Tengine

本文系统环境为:Cent OS 7 x64 - 1810

编译器:gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)

本文所使用安装的路径为/usr/local/nginx

可执行文件在/usr/local/nginx/sbin/nginx

PID文件位于/run/nginx/nginx.pid

注:关于PID文件的位置可以在/usr/local/nginx/conf/nginx.conf文件名中指定pid参数的路径即可,但需保证该路径存在且具有nginx运行账户的属主属组权限

若您使用自定义的安装路径,请改为自己的路径。

编写Systemd服务启动文件

首先新增一个my-nginx23.service的文件,名称可以自定义,但最好保留一些版本信息和个人附加信息以区分该服务的类型,文件名后缀需以.service结尾,方便后期维护所用。

vim /etc/systemd/system/my-nginx23.service

添加以下内容:

[Unit]
Description=The Tengine-2.3 Service.				#服务的描述信息
After=network.target remote-fs.target nss-lookup.target	#服务的依赖,启动nginx时确保依赖服务都被启动

[Service]
Type=forking							#指定运行的进程为一个守护进程
PIDFile=/run/nginx/nginx.pid			#指定PID文件的位置,需要跟nginx.conf文件对应
ExecStartPre=/usr/local/nginx/sbin/nginx -t		#在启动本服务之前先进行nginx.conf配置文件的测试,确保不出错
ExecStart=/usr/local/nginx/sbin/nginx	#启动nginx主进程,请务必使用绝对路径
ExecReload=/usr/local/nginx/sbin/nginx -s reload	#执行systemctl reload调用的方法
TimeoutStopSec=5						#设置服务启动超时,也可以单独指定为,TimeoutStartSec=xx(服务启动超时)TimeoutStopSec=xx(服务停止超时)
PrivateTmp=true							#将进程的临时文件设为私有的,增加安全性

[Install]
WantedBy=multi-user.target				#指定启动服务安装的位置,也可理解为在哪个运行级别启动nginx的守护进程

保存文件并退出。

测试

在编写完配置文件后,并不能立即启用,在此之前,我们还需要重载一下systemd主进程的配置文件,执行如下命令:

systemdctl daemon-reload

查看nginx服务的当前状态信息:

systemctl status my-nginx23				#名称为我们服务文件的名称,此处可以不必使用全名

systemctl-status-nginx

如图,服务处于停止状态。

尝试启动服务:

systemctl start my-nginx23

systemctl-start-nginx

服务启动成功!

测试重载服务的配置文件:

systemctl reload my-nginx23

systemctl-reload-nginx

载入配置文件成功!

测试停止服务:

systemctl stop my-nginx23

systemctl-stop-nginx

停止成功!

加入开机启动:

systemctl enable my-nginx23

systemctl-enable-nginx

成功!

总结

本文的方法不局限于nginx的启动,关于编译安装的mariadbphp-fpm等同样适用,只需要传递不同的参数,我们不仅要了解systemd的一些调用机制,还要熟悉我们所启动的服务的一些常见命令操作以及大概的工作原理。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×