自定义 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.