【systemd】关于systemd中的 $MAINPID

$MAINPID is a systemd variable for your service that points to the PID of the main application.

$ MAINPID是服务的systemd变量,它指向主应用程序的PID。

 

 

ExecReload=

这是一个可选的指令, 用于设置当该服务 被要求重新载入配置时 所执行的命令行。 语法规则与 ExecStart= 完全相同。

另外,还有一个特殊的环境变量 $MAINPID 可用于表示主进程的PID, 例如可以这样使用:

ExecReload=/bin/kill -HUP $MAINPID

注意,像上例那样,通过向守护进程发送复位信号, 强制其重新加载配置文件,并不是一个好习惯。

 因为这是一个异步操作, 所以不适用于需要按照特定顺序重新加载配置文件的服务。 

我们强烈建议将 ExecReload= 设为一个 能够确保重新加载配置文件的操作同步完成的命令行。

 

 

你应该使用PIDFile和$ MAINPID而不是pkill。 

如果由于某种原因多次运行nginx怎么办。 在几个容器中,或作为某些开发人员的本地服务器。 谁知道将获取哪些PID?

但是systemd知道服务的PID,通过$MAINPID变量 为你获取它。

 

常用信号表

 

 

 

kill与信号量

https://www.jianshu.com/p/966d18eac17e

 

当执行kill -9 PID时系统发生了什么?

http://zyearn.github.io/blog/2015/03/22/what-happens-when-you-kill-a-process

 

systemd.service 中文手册

http://www.jinbuguo.com/systemd/systemd.service.html

 

Systemd Services: Beyond Starting And Stopping

https://www.linux.com/tutorials/systemd-services-beyond-starting-and-stopping

 

Using PIDFile and $MAINPID instead of pkill

https://medium.com/@jbriggs_24705/you-should-be-using-pidfile-and-mainpid-instead-of-pkill-1935e4531931

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值