code学习

自定义 systemd service

Red Hat Linux 自 7 版本后 采用systemd 形式取代原先 init ,用户可以参考 系统service 创建自己的service ,以便于日常统一管理,系统service 存储路径 

/usr/lib/systemd/system

,下面我们以一个编译安装的nginx为例 ,介绍 如何自己创建一个类似的service。

1.首先创建nginx.service

/usr/lib/systemd/system/

目录下面新建一个nginx.service文件。并赋予可执行的权限

touch /usr/lib/systemd/system/nginx.service

chmod +x /usr/lib/systemd/system/nginx.service           

2 .仿照其它service 内容格式,设置service 内容参数 ,包括 描述、启动命令、停止命令

[Unit]                                                                                      #对服务的说明

Description=nginx - high performance web server                                             #描述服务

After=network.target remote-fs.target nss-lookup.target                                     #描述服务类别

 

[Service]                                                                                   #服务的一些具体运行参数的设置

Type=forking                                                                                 #后台运行的形式

PIDFile=/usr/local/nginx/logs/nginx.pid                                                     #PID文件的路径

ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf              #启动前准备 校验配置文件是否错误

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf                   #启动命令 指定配置文件

ExecReload=/usr/local/nginx/sbin/nginx -s reload                                             #重启命令

ExecStop=/usr/local/nginx/sbin/nginx -s stop                                                  #停止命令

ExecQuit=/usr/local/nginx/sbin/nginx -s quit                                                  #强制停止

PrivateTmp=true                                                                               #给服务分配临时空间

 

[Install]

WantedBy=multi-user.target                                                                    #service 模式           

3.检查并测试启动服务 

# 先重载systemctl命令

systemctl daemon-reload
# 启动服务
systemctl start nginx.service
# 查看状态
systemctl status nginx
#停止服务
systemctl stop nginx
# 重启服务
systemctl restart nginx           

例如:

# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Tue 2022-02-15 15:06:57 CST; 3 months 15 days ago
 Main PID: 1653 (code=exited, status=0/SUCCESS)

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.           

继续阅读