Daemon

使用主管管理守護程序:沒有可用的前台模式

  • October 27, 2019

我正在嘗試使用supervisord管理程序,但該程序沒有在前台執行的選項:它總是守護程序。(那是 Zabbix 伺服器)。

有沒有辦法用主管管理守護程序?有什麼工具可以讓它在前台執行?或者,也許,以某種方式使用 pidfile?

為了解決這個問題,我們需要一些在前台執行的程序,它在守護程序退出時退出,並且還代理給守護程序的信號。

考慮使用以下腳本 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

引用自:https://serverfault.com/questions/608069