一、命令systemctl介绍

CentOS 7.0中已经没有service命令,而是启用了systemctl服务器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

命令对比

常用命令

  • 开启开机启动

    systemctl enable gateway-api

  • 禁止开机启动

    systemctl disable gateway-api

  • 查看服务状态

    systemctl status -n 100 gateway-api

  • 启动服务

    systemctl start gateway-api

  • 重启服务

    systemctl restart gateway-api

  • 重载服务

    systemctl restart gateway-api

  • 停止服务

    systemctl stop gateway-api

  • 重新加载配置文件

    sudo systemctl daemon-reload

常用命令

  • 查看系统服务日志

    journalctl -fa -u serviceName or journalctl -f -u serviceName -o cat
  • 查看日志占有磁盘空间

    journalctl --disk-usage
  • 配置别名
vi /etc/bashrc
alias jlog='journalctl -fa -u'
source /etc/bashrc

二、自定义配置系统服务

centos7系统的配置目录:/etc/systemd/system 或者 /usr/lib/systemd/system

将写好的配置文件放到系统的配置目录,并754赋权限即可使用systemctl管理服务啦。

  • 系统基本service服务配置目录

    /etc/systemd/system

    此目录勿动,一般情况下只放系统核心基础服务配置,否存放应用注册类服务配置。

  • 自定义服务配置管理目录

    /usr/lib/systemd/system

    存放自定义应用注册类服务和第三方服务类配置。

创建一个配置文件

以服务的名称命名,例如:gateway-api.service

编写配置文件

[Unit]
Description=gateway-api
#在哪些服务之后启动(After和Before字段只涉及启动顺序,不涉及依赖关系)
#After=rc-local.service
#在哪些服务之前启动(After和Before字段只涉及启动顺序,不涉及依赖关系)
#Before= #存在"弱依赖"关系,依赖的服务或者服务组启动失败或停止运行,不影响当前服务继续执行。
#Wants=
#表示"强依赖"关系,即如果该服务或者服务组启动失败或异常退出,那么当前服务也必须退出。
#Requires= [Service]
#启动类型,具体见:Type字段定义启动类型
Type=forking
#指定pid文件,可以不指定(缺省)
PIDFile=/var/run/gateway-api.pid #自定义服务的运行环境变量
#EnvironmentFile约定位置格式:/usr/lib/systemd/system/gateway-api.service.d/environment.conf
EnvironmentFile=/opt/apps/comm.env
EnvironmentFile=/opt/apps/gateway-api.env
Environment=spring_profiles_active=test
Environment=spring_cloud_bootstrap_name=bootstrap,common-bootstrap #服务启动,重启,重载,停止
ExecStart=-/opt/apps/jdk1.8/bin/java -jar /opt/apps/gateway-api-0.0.1-SNAPSHOT.jar
#服务重启(缺省)
#ExecRestart=
Restart=on-failure
RestartSec=1s
#重新加载(缺省)
#ExecReload=
#停止服务(缺省)
#ExecStop= #启动服务之前执行的命令
ExecStartPre=echo 开始启动服务:gateway-api
#启动服务之后执行的命令
ExecStartPost=echo 服务gateway-api启动完毕
#停止服务之后执行的命令
ExecStopPost=服务gateway-api已停止 #是否分配独立的临时空间(缺省)
#PrivateTmp=True #打开文件描述符数量
LimitNOFILE=40000 [Install]
#表示该服务所在的,Target的含义是服务组,表示一组服务
WantedBy=multi-user.target

注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错;

Type字段定义启动类型

  • simple(默认值):ExecStart字段启动的进程为主进程
  • forking:ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程
  • oneshot:类似于simple,但只执行一次,Systemd 会等它执行完,才启动其他服务
  • dbus:类似于simple,但会等待 D-Bus 信号后启动
  • notify:类似于simple,启动结束后会发出通知信号,然后 Systemd 再启动其他服务
  • idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合

CentOS7 利用systemctl添加自定义系统服务的更多相关文章

  1. CentOS7利用systemctl添加自定义系统服务【转】

    systemctl enable name.service 设置开机启 systemctl disable name.service 删除开机启动指令 systemctl list-units --t ...

  2. [转]CentOS7利用systemctl添加自定义系统服务

    原文:https://www.cnblogs.com/saneri/p/7778756.html CentOS7自定义系统服务 CentOS7的服务systemctl脚本存放在:/usr/lib/sy ...

  3. CentOS7利用systemctl添加自定义系统服务

    CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install] 转载于互联网 [Unit] 部分主要是对这个服务的说明,内容包括Descrip ...

  4. 在CentOS 7上利用systemctl添加自定义系统服务 /usr/lib/systemd/

    在CentOS 7上利用systemctl添加自定义系统服务[日期:2014-07-21] 来源:blog.csdn.net/yuanguozhengjust 作者:yuanguozhengjust ...

  5. CentOS 7上利用systemctl添加自定义系统服务

    Centos 7 之 systemctl CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方 ...

  6. 在CentOS 7上利用systemctl添加自定义系统服务

    每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install],具体内容如下: [Unit]Description=*****After=network.ta ...

  7. CentOS7使用systemctl添加自定义服务

    一.简介 Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别.systemd是靠管理unit的方式来控制开机服务,开机级别等功能. 在/u ...

  8. systemctl添加自定义系统服务

    [Service] Type=forking ExecStart=绝对路径 ExecStop=绝对路径 ExecReload=绝对路径 以上最精简版,文件/usr/lib/systemd/system ...

  9. CentOS7利用systemctl添加dotnet后台服务

    /usr/lib/systemd/system/zl.service systemctl enable zl.service systemctl start zl.service [Unit]Desc ...

随机推荐

  1. HTML canvas中translate()与rotate()的理解

    首先,当我们在页面上初始化canvas时,相当于在上面放了一块画布,这块画布我们可以理解为上面有一个坐标系(如下图),左上角是原点,往右是X轴的正方向,往下是Y轴的正方向,我们在画布上绘制的内容都是基 ...

  2. 如何为我们的程序编写开发文档——Java文档注释

    Java文档注释是用于生成Java API文档的注释,通过在程序中的类.属性.方法部分加上注释,就可以用javadoc命令生成漂亮的API文档,是程序员进阶的必备技能. 注意,文档注释只说明紧跟其后的 ...

  3. node.js配置环境变量

    今天配置node.js的时候,碰到了配置环境变量的问题 为什么会出这样的问题: 因为我将 node.js 安装到了D盘,(这是个坑,以后一定要安到C盘),当我发现,我的node操作指令无效的时候,知道 ...

  4. Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数

    Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数 绑定表达式中可以有简单的运算和字符串连接, 但字符串需放在双引号 ...

  5. Altium Designer chapter8总结

    元件库操作中需要注意如下: (1)原理图库:主要分三部分来完成(绘制元件的符号轮廓.放置元件引脚.设计规则检查). (2)多子件原理图库:操作与原理图库基本相同,就是新建part. (3)PCB封装库 ...

  6. 腾讯视频的手机端的地址和PC端的地址是不一样的

    腾讯视频的手机端的地址和PC端的地址是不一样的,所以使用iframe的时候记得要使用手机端的地址

  7. pandas入门(1)

    import pandas as pd import numpy as np # 自动创建索引 obj = pd.Series([4, 7, -5, 2]) print(obj, type(obj)) ...

  8. Console.Out 属性和 XmlDocument.Save 方法 (String)

    Console.Out 属性 默认情况下,此属性设置为标准输出流. 此属性可以设置为另一个流SetOut方法. 请注意,调用Console.Out.WriteLine方法是等效于调用相应WriteLi ...

  9. 实验报告一&第三周学习总结

    一.实验报告 1.打印输出所有的"水仙花数",所谓"水仙花数"是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个"水仙花数" ...

  10. 版本控制工具 GIT 简要教程

    一,Git 简介 其实这个就不用说了 但是国际惯例还是介绍一下吧; Git 是一个开源的分布式版本控制系统,用于敏捷 高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助 ...