kol*_*pto 9 daemon supervisord docker
我正在尝试使用supervisord管理一个进程,但该进程没有在前台运行的选项:它总是守护进程。(那是 Zabbix 服务器)。
有没有办法用主管管理守护进程?有什么工具可以让它在前台运行?或者,以某种方式使用pidfile?
kol*_*pto 15
为了解决这个问题,我们需要一些在前台运行的程序,它会在守护进程退出时退出,并且还代理向守护进程发送信号。
考虑使用以下脚本 bash 脚本:
#! /usr/bin/env bash
set -eu
pidfile="/var/run/your-daemon.pid"
command=/usr/sbin/your-daemon
# Proxy signals
function kill_app(){
kill $(cat $pidfile)
exit 0 # exit okay
}
trap "kill_app" SIGINT SIGTERM
# Launch daemon
$command
sleep 2
# Loop while the pidfile and the process exist
while [ -f $pidfile ] && kill -0 $(cat $pidfile) ; do
sleep 0.5
done
exit 1000 # exit unexpected
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11661 次 |
| 最近记录: |