zoukankan      html  css  js  c++  java
  • 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.target
    Requires=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:实例单元的限制,这个选项指定如果单元被允许运行默认的实例。

  • 相关阅读:
    自动识别文本中最能体现文本的主题和风格的词汇?试想一下,要找到一本 书中使用最频繁的 50 个词
    语言处理任务 NLTK 模块 功能描述
    mysql group by 去重 分类 求和
    isinstance(object, classinfo) class type(name, bases, dict)
    函数式编程 偏函数 生成器 yield
    .bash_profile vs .bashrc
    sh/bash/csh/Tcsh/ksh/pdksh等shell的区别
    从数据库、页面加载速度角度思考 id设计 sku asin
    线性回归
    Oracle OLAP
  • 原文地址:https://www.cnblogs.com/boshen-hzb/p/7838391.html
Copyright © 2011-2022 走看看