systemctl自定义service
应用场景:开启自启动运行脚本/usr/local/manage.sh
一、服务介绍
CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像须要开机不登陆就能执行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system文件夹下或/etc/systemd/system下面,每个服务以.service结尾,通常会分为3部分:[Unit]、[Service]和[Install]。
二、新建manage.service
[Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=aaa.service network.target remote-fs.target nss-lookup.targetRequires=aaa.service[Service] EnvironmentFile=-/run/test/manage.env Environment="TMPDIR=/var/tmp/" Type=forking PIDFile=/run/manage.pid ExecStartPre=/usr/bin/mkdir /usr/local/test --test=${TESTENV} ExecStart=/usr/local/manage.sh start ExecStartPost=/usr/bin/mkdir /usr/local/test2 ExecReload=/usr/local/manage.sh restart ExecStop=/usr/local/manage.sh stop PrivateTmp=true LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=5 MountFlags=slave RestartSec=10 Restart=always[Install] WantedBy=multi-user.target
三、服务解说
[Unit]
Description : 服务的简单描述
Documentation : 服务文档
Before、After:定义启动顺序。Before=xxx.service,代表本服务在xxx.service启动之前启动。After=xxx.service,代表本服务在xxx.service之后启动。
Requires:这个单元启动了,它需要的单元也会被启动;它需要的单元被停止了,这个单元也停止了。
Wants:推荐使用。这个单元启动了,它需要的单元也会被启动;它需要的单元被停止了,对本单元没有影响。
[Service]
Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。
Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。
Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。
Type=notify:与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。
Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。
Type=idle: systemd会等待所有任务(Jobs)处理完成后,才开始执行idle类型的单元。除此之外,其他行为和Type=simple 类似。
PIDFile:pid文件路径
ExecStart:指定启动单元的命令或者脚本,ExecStartPre和ExecStartPost节指定在ExecStart之前或者之后用户自定义执行的脚本。Type=oneshot允许指定多个希望顺序执行的用户自定义命令。
ExecReload:指定单元停止时执行的命令或者脚本。
ExecStop:指定单元停止时执行的命令或者脚本。
PrivateTmp:True表示给服务分配独立的临时空间
Restart:这个选项如果被允许,服务重启的时候进程会退出,会通过systemctl命令执行清除并重启的操作。
EnvironmentFile:通过指定的文件加载环境变量。
Environment:直接指定环境变量
RestartSec:执行重启前暂停的秒数
TimeoutStartSec:设置该服务允许的最大启动时长。 如果守护进程未能在限定的时长内发出"启动完毕"的信号,那么该服务将被视为启动失败,并会被关闭。 如果未指定时间单位,那么将视为以秒为单位。 例如设为"20"等价于设为"20s"。 设为 "infinity
" 则表示永不超时。 当 Type=oneshot
时, 默认值为 "infinity
" (永不超时), 否则默认值等于DefaultTimeoutStartSec=
的值
LimitNOFILE:打开文件描述符数量
LimitNPROC:用户的最大进程数量
LimitCORE:coredump文件的大小,infinity表示没有限制
[Install]
Alias:为单元提供一个空间分离的附加名字。
RequiredBy:单元被允许运行需要的一系列依赖单元,RequiredBy列表从Require获得依赖信息。
WantBy:单元被允许运行需要的弱依赖性单元,Wantby从Want列表获得依赖信息。
Also:指出和单元一起安装或者被协助的单元。
DefaultInstance:实例单元的限制,这个选项指定如果单元被允许运行默认的实例。
转载于:https://www.cnblogs.com/boshen-hzb/p/7838391.html
systemctl自定义service相关推荐
- centos7重新加载服务的命令_Centos7 systemctl添加service服务参数说明
Centos7可以通过systemctl执行服务命令,同时支持自定义service服务文件来进行一系列的标准执行. 常用命令 systemctl daemon-reload systemctl ena ...
- systemctl和service
一直以为这两个功能是一样的,某些情况下systemctl比service功能还要强,但是工作中遇到了问题 在这里,用service操作libvirt-bin,但是无法用systemctl处理.查阅资料 ...
- 查看systemctl或service启动服务日志
查看systemctl或service启动服务日志_mikelv01的博客-CSDN博客_systemctl 查看日志 journalctl -u minio.service 微信扫一扫:关注我个人订 ...
- 关于ubuntu自定义service服务时找不到/usr/lib/systemd/system目录的问题
关于ubuntu自定义service服务时找不到/usr/lib/systemd/system目录的问题 问题 我们知道在 systemd 取代了 init 而成为广大 Linux 系统中 PID 为 ...
- ros自定义service消息.srv文件中增加自定义.msg消息
先制作msg文件 1. 在disinfect_msg包下创建 :testInfo.msg 文件 int32 Id string TargetName string X string Y string ...
- 在linux下创建自定义service服务
三个部分 这个脚本分为3个部分:[Unit] [Service] [Install]. Unit Unit表明该服务的描述,类型描述.我们称之为一个单元.比较典型的情况是单元A要求在单元B启动之后再启 ...
- Linux 自定义service,并重定向输出到日志文件
最近由于项目需要,需后台运行java application,进行一些操作,并将屏幕输出定向到日志文件中. 首先将jiar 文件拷贝到linux.这里我放在 /home/jerry 输入命令 cd / ...
- CentOS7防火墙设置;Linux防火墙设置;systemctl -- firewalld.service;firewall;firewall-cmd
1.查看firewall服务状态 systemctl status firewalld 2.查看firewall的状态 firewall-cmd --state 3.开启.重启.关闭.firewall ...
- systemctl与service
1. 引言 首先简单说一下service命令,systemctl比他的功能更丰富一些,service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动.停止.重新启动和关 ...
最新文章
- 一:HDFS 用户指导
- css游戏代码_介绍CSSBattle-第一个CSS代码搜寻游戏
- getHibernateTemplate()和getSession()的区别
- CodeForces - 1337D Xenia and Colorful Gems(二分)
- ch=cin.get()和cin.get(ch)返回值问题
- product text的language dropdown list里 没有对应语言的问题
- html网页制作图案,巧用CSS滤镜做图案文字-网页设计,HTML/CSS
- 深度学习准备「爆破」著名的欧拉方程
- java中位数_java 计算中位数方法
- consul运维入门
- 第十章:内核同步方法
- flex socket java_使用Java编写Socket服务器,并且与Flex通信(二)
- 使用mustache js模板引擎
- 文件相似度比对工具的设计与实现
- 电商管理系统微服务架构图
- ESP8266+blinker测温湿度
- 串口拓展测试方法及步骤--信而泰TeleATT测试软件实操
- Python3 基础语法知识1
- Hadoop 学习路线图
- SCVMM 2012 SP1 Beta 体验(一)安装准备
热门文章
- java09数组的使用
- calendar操作详解
- 检测到在集成的托管管道模式下不适用的ASP.NET设置
- python遵循什么协议_《Python网络爬虫》2.3 Robots协议的遵守方式
- 点击高德地图标注没法弹窗_如何在地图上标注我的店铺
- brew安装_解决安装brew报的curl的443错误
- messagebox java_如何从messagebox获得答案
- java中attribute用法_Java FieldPosition getFieldAttribute()用法及代码示例
- python 倒排索引(Inverted Index)
- Mac IDEA解决Maven项目命令行报错:command not found: mvn