systemd下supervisord服务开机自启动以及注意事项

systemd 下supervisord服务开机自启动

centos7 开机自启动脚本:

#vim /lib/systemd/system/supervisord.service

# supervisord service for sysstemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)

[Unit]
Description=Supervisor daemon

[Service]
ExecStart=/usr/bin/supervisord
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

这个自启动脚本需要修改/etc/supervisord.conf配置文件:

    #vim /etc/supervisrod.conf
        nodaemon=false    改成true

或者:#vim /lib/systemd/system/supervisord.service

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

无需修改/etc/supervisord.conf配置文件

两个自启动脚本都能够添加到systemctl自启动服务

#systemctl enable supervisord.service
#systemctl start/restart/stop supervisor.service

systemd 下supervisor服务自启动服务管理有变量的服务

但是当superviosr被管理的服务有环境变量,是会有问题(比如启动elasticserch服务,有JAVA_HOME和limit.conf的依赖),原因:/etc/profile或者/etc/security/limit.conf 这些文件中配置的环境变量仅对通过pam登录的用户生效,
而systemd是不读这些配置的,所以这就造成登录到终端时查看环境变量和手动启动应用都一切正常,但是systemd无法正常启动应用

获取可以通过添加环境变量来解决(未测试,因为supervisor服务自启动的需要不是很强烈):
[Service]
environment=PYTHONPATH=/opt/mypypath:%(ENV_PYTHONPATH)s,PATH=/opt/mypath:%(ENV_PATH)s

参考:https://github.com/Supervisor/initscripts
参考:https://blog.csdn.net/binggoogle/article/details/53203991
参考:https://www.cnblogs.com/mhc-fly/p/8512491.html
参考:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

转载于:https://blog.51cto.com/395469372/2288327

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值