zoukankan      html  css  js  c++  java
  • CentOS7 利用systemctl添加自定义系统服务

    一、命令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,但是要等到其他任务都执行完,才会启动该服务。一种使用场合是为让该服务的输出,不与其他服务的输出相混合
  • 相关阅读:
    array with objects sort
    Vue组件之区域滚动
    ajax跨域请求问题总结
    常见contentType
    Sublime Text 3实用快捷键大全
    具有层级关系的扁平化数组转化成树形结构数组
    阿里云地图选择器
    前端解析二进制文件流并下载
    tool.js日常工具方法
    git操作
  • 原文地址:https://www.cnblogs.com/kancy/p/11101529.html
Copyright © 2011-2022 走看看