一、命令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. linux 文件相关常用命令

    文件或者目录操控命令 1,cd切换目录. 其中- 代表前一个目录 2,mkdir 新建目录. 加上-p参数可以递归创建多级目录 mkdir -p test1/test2/test3 3,rmdir删除 ...

  2. equals深入理解

    package cn.galc.test; public class TestEquals { public static void main(String[] args) { /** * 这里使用构 ...

  3. CruiseControl.NET配置

    CruiseControl.NET简介 CruiseControl.NET是.net平台下,一个开源的自动化持续集成工具. 它是一个程序套件,但其核心是一个叫做CruiseControl.NET Se ...

  4. MSSQL 如何导出db所有用户权限创建语句

    use dbgoDECLARE @Database varchar(255),@loginName varchar(255),@roleName varchar(255),@sql nvarchar( ...

  5. 嵌入式Linux之gdb配置和使用

    背景: ARM Cortext-A53核+Linux 4.1.12,内核空间64位,用户态32位,gdb版本7.10.1 GDB编译: 1)手动下载gdb-7.10.1.tar.gz源码编译 ./co ...

  6. UVA 1380 A Scheduling Problem

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  7. 《图解设计模式》读书笔记9-2 Proxy模式

    目录 Proxy模式 示例程序 程序描述 类图 程序 角色和类图 角色 模式类图 思路拓展 提升速度 代理与委托 Http代理 与其他模式的关联 Decorator模式 Proxy模式 Proxy是代 ...

  8. struts2 基础

    框架(frameWork):某一种应用的半成品 struts2: 表现层 处理与页面进行交互的相关功能  hibernate: 持久层 负责业务逻辑数据的持久化  spring: 业务层 负责复杂的业 ...

  9. python接口自动化:对外接口sign签名

    签名参数sign生成的方法: 在接口开发过程中,一般通过时间戳+sign作为密匙加密传输 实现代码如下: #python实现sign签名 import hashlib,time class sign: ...

  10. 应用安全 - 工具使用 - Nmap

    TCP端口扫描类型 TCP connect扫描 三次握手完成/全连接/速度慢/易被检测到 TCP SYN扫描 半开扫描/发送SYN包启动TCP会话 TCP FIN扫描 半开扫描/发送SYN包启动TCP ...