CentOS7.5下开发systemctl管理的自定义Rsync启动服务程序

Posted mr-ding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7.5下开发systemctl管理的自定义Rsync启动服务程序相关的知识,希望对你有一定的参考价值。

一、systemctl知识简介

从CentOS7 Linux开始,系统里的网络服务启动已经从传统的service改成了systemctl(一个systemd工具,主要负责控制systemd系统和服务管理器。),管理开机自启动的命令也从chkconfig改为了systemctl,由systemctl一个命令代替了CentOS7以前系统中的service和chkconfig两个命令。
系统服务的脚本也从传统的路径的/etc/init.d(/etc/rc.d/init.d/),改到了/usr/lib/systemd(除此之外还有/etc/systemd/system),需要自启动运行的程序,一般存在这个系统服务目录下,即:/usr/lib/systemd/system目录,每一个服务以“服务名.service”结尾,该文件的内容一般分为3部分:即[Unit]、[Service]和[Install]。

二、systemctl管理的sshd服务配置介绍

下面是系统中sshd服务配置及解释说明。

 1 cat /usr/lib/systemd/system/sshd.service
 2 
 3 [Unit]   #<==对该系统服务描述及说明模块。
 4 Description=OpenSSH server daemon            #<==描述性说明。
 5 Documentation=man:sshd(8) man:sshd_config(5) #<==文档列表说明。
 6 After=network.target sshd-keygen.service     #<==服务依赖类别说明。
 7 Wants=sshd-keygen.service     #<==可选的依赖服务。
 8  
 9 [Service]   #<==系统服务的运行参数设置模块
10 Type=notify #<==服务类型,可选有forking、notify、simple等。
11 EnvironmentFile=/etc/sysconfig/sshd  #<==环境变量等的配置文件。
12 ExecStart=/usr/sbin/sshd -D $OPTIONS #<==服务的启动程序。
13 ExecReload=/bin/kill -HUP $MAINPID   #<==重启程序。
14 KillMode=process
15 Restart=on-failure
16 RestartSec=42s
17  
18 [Install] #<==服务安装的相关设置。
19 WantedBy=multi-user.target   #<==这里为设置多用户级别。可为空格分隔的列表, 表示在使用 systemctl enable 启用此单元时, 将会在对应的目录设置对应文件的软连接。
20 更多说明,可参考systemd.unit、system.service文档,此不细述,都掌握了意义也不大,可以写出启动脚本即可。

 

三、根据上面的服务配置创建nginx启动脚本

 1 vim /usr/lib/systemd/system/nginx.service
 2 
 3 Description=Nginx service startup    #描述说明;
 4 After=syslog.target network.target remote-fs.target nss-lookup.target  #服务依赖类别说明;
 5 
 6 [Service]
 7 Type=forking  #服务类型,可选有forking、notify、simple等;
 8 PIDFile=/application/nginx/logs/nginx.pid  #nginx的pid路径
 9 ExecStartPre=/application/nginx/sbin/nginx -t  #启动前检查配置文件是否正确;
10 ExecStart=/application/nginx/sbin/nginx  #启动nginx
11 ExecReload=/usr/bin/kill -s HUP $MAINPID  #重载reload
12 ExecStop=/usr/bin/kill -s QUIT $MAINPID  #停止服务
13 PrivateTmp=true  #为服务分配独立的空间;
14 
15 [Install]
16 WantedBy=multi-user.target  #多用户级别

 

启动nginx

systemctl start nginx

 

停止

systemctl stop nginx

 

重启

1 systemctl restart nginx 
2 
3 #平滑重启
4 systemctl reload nginx 

 

设置开机自启

systemctl enable nginx

 

查看是否设置为开机自启

1 [[email protected] system]# systemctl list-unit-files|grep nginx
2 nginx.service                                 enabled

 


以上是关于CentOS7.5下开发systemctl管理的自定义Rsync启动服务程序的主要内容,如果未能解决你的问题,请参考以下文章

LInux:服务的管理-systemctl

Linux从入门到入土②(系统管理)

CentOS7.5 防火墙指令

systemctl和service

自定义 systemctl 管理服务

Centos7 自定义systemctl服务脚本