centos7 systemctl自定义.service脚本规则和教程

  • A+
所属分类:运维笔记

一年多接触了Linux的分支centos,主要是用的centos6.x,对使用/etc/init.d很熟悉,很简单!但是,现在已经到了centos7时代了!

centos7使用的systemctlsystemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。

但是由于以前对centos6.x的依赖,centos7有点大不习惯了,不过渐渐自己的服务器全部基于的是centos67,所以centos7渐渐也变的那么的熟悉~~~

下面来讲讲centos7下最重要的service脚本的规范和格式

以ss的Python版为例:

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别。

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/etc/systemd/system/,这时就可以利用systemctl进行配置了。

首先,使用systemctl start [服务名(也是文件名)]可测试服务是否可以成功运行,如果不能运行则可以使用systemctl status [服务名(也是文件名)]查看错误信息和其他服务信息,然后根据报错进行修改,直到可以start,如果不放心还可以测试restart和stop命令。
接着,只要使用systemctl enable xxxxx就可以将所编写的服务添加至开机启动即可。

再给出一个supervisord的脚本大家可以参考,是用pip装的,只做参考:

 

echo少年

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  0   博主  1

    • avatar david Admin

      测试!