mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-21 12:38:41 +03:00
* Make sure that Upstart notices when the Zabbix server crashes so
that it can be restarted. Zabbix is kind of hard to monitor, so use a trick with an open fifo to detect when it goes down. svn path=/nixos/trunk/; revision=20039
This commit is contained in:
parent
1dd3162d7c
commit
9127795e4a
@ -74,15 +74,29 @@ in
|
||||
cat ${pkgs.zabbix.server}/share/zabbix/db/data/images_pgsql.sql | ${pkgs.su}/bin/su -s "$SHELL" zabbix -c '${pkgs.postgresql}/bin/psql zabbix'
|
||||
touch "${libDir}/db-created"
|
||||
fi
|
||||
'';
|
||||
|
||||
# Zabbix doesn't have an option not to daemonize, and doesn't
|
||||
# daemonize in a way that allows Upstart to track it. So to
|
||||
# make sure that we notice when it goes down, we start Zabbix
|
||||
# with an open connection to a fifo, with a `cat' on the other
|
||||
# side. If Zabbix dies, then `cat' will exit as well, so we
|
||||
# just monitor `cat'.
|
||||
script =
|
||||
''
|
||||
export PATH=${pkgs.nettools}/bin:$PATH
|
||||
${pkgs.zabbix.server}/sbin/zabbix_server --config ${configFile}
|
||||
rm -f ${stateDir}/dummy
|
||||
mkfifo ${stateDir}/dummy
|
||||
cat ${stateDir}/dummy &
|
||||
pid=$!
|
||||
${pkgs.zabbix.server}/sbin/zabbix_server --config ${configFile} 100>${stateDir}/dummy
|
||||
wait "$pid"
|
||||
'';
|
||||
|
||||
postStop =
|
||||
''
|
||||
pid=$(cat ${pidFile})
|
||||
test -n "$pid" && kill "$pid"
|
||||
pid=$(cat ${pidFile} 2> /dev/null || true)
|
||||
(test -n "$pid" && kill "$pid") || true
|
||||
# Wait until they're really gone.
|
||||
while ${pkgs.procps}/bin/pkill -u zabbix zabbix_server; do true; done
|
||||
'';
|
||||
|
Loading…
Reference in New Issue
Block a user