[LINUX]systemd service编写

  • Unit(单元)一个单元代表了一个后台服务进程:(可以类比成relations,描述服务之间的依赖关系)
    • Description:一段描述性文字,让人知道这个服务是干嘛的,一般都会写;
    • (After,Before)/Requires:描述在什么服务之后启动,区别在于(After,Before)非强制启动,类似于一个注释,说明启动本服务之前,【最好】先启动哪些服务,没有任何制约作用,如果那些服务没有启动,本服务照样会启动。Require会自动启动依赖的服务,然后启动本服务,关闭时也会先关闭本服务;
    • Documentation:也是描述性文字,一般指向一个http的文档地址,一般不写;
    • Wants:功能和Requires相反,带有强制作用,等于反向的描述依赖,但是如果wants的服务没有启动成功,不会影响本服务,因为从关系上,仍然是wants的服务依赖于本服务;
    • Conflicts:表示互斥关系,如果Conflicts中的服务已经启动,本服务就不启动;
    • BindsTo:指定的unit如果推出,当前服务也会停止运行;
    • Condition:当前unit必须满足的条件,否则不会运行;
    • OnFailure:如果本unit启动失败,那么启动某个候选方案service,类似于backup;
  • Service(服务)配置服务具体的属性了(可以类比成nodes信息)
    • Type:服务的启动类型,可以是
      • simple:本进程就是主体程序,例如非daemon程序,自己编写的小程序;
      • forking:守护进程服务一般采用这种方式启动,即在程序中调用了linux daemon函数;
      • oneshot:一次性程序,在程序退出后服务继续运行;
      • dbus、idle,notify。
    • ExecStart:执行一条shell命令,不要有&&复杂的运行关系,如果有,写入sh脚本中;
    • ExecStartPre:预处理脚本,看需要加;
    • ExecStartPost:后处理脚本,看需求来加;
    • Restart:设置在什么场景下进行重启,always:陷入异常退出或者被系统kill之后自动重启,no, on-success, on-failure,on-watchdog, on-abort;
    • RestartSec:服务终止后等待多长时间才重启,默认是100ms,一般没有特殊需求不用设置;
    • KillMode:process、control-group、none3选1,process就是当前进程,control-group就是终止一个组,none就是不关闭程序(一般不选);
    • TimeoutSec:服务start和stop等超时等待时间;
    • Environment:设置环境变量;
    • EnvironmentFile:通过文件的方式设置环境变量;
    • ExecStop:停止的时候执行的命令;
    • ExecReload:重新加载(restart)的时候执行的命令;
    • StandardOutput:syslog标准输出路径;
    • StandardError:inherit标准错误路径;
    • PrivateTmp:True给服务分配独立的临时空间;
    • WorkingDirectory:设置工作路径;
    • User:以指定的用户名称启动服务;
    • Group:以指定的组名称启动服务;
  • Install(安装):
    • WantedBy:将服务安装到哪里,一般都是multi-user.target;
    • Also:本服务关联的unit,在enable的时候会一起enable;
    • Alias:当前unit的别名;
  • 其他设置:
    • 设置systemd调试模式:service标签下添加:Environment=SYSTEMD_LOG_LEVEL=debug
    • 重新加载最新配置:sudo systemctl daemon-reload
    • 开启启动某个服务:sudo systemctl enable foo.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值