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

 

posted @   静言善思  阅读(392)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示