mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-21 20:49:52 +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'
|
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"
|
touch "${libDir}/db-created"
|
||||||
fi
|
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
|
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 =
|
postStop =
|
||||||
''
|
''
|
||||||
pid=$(cat ${pidFile})
|
pid=$(cat ${pidFile} 2> /dev/null || true)
|
||||||
test -n "$pid" && kill "$pid"
|
(test -n "$pid" && kill "$pid") || true
|
||||||
# Wait until they're really gone.
|
# Wait until they're really gone.
|
||||||
while ${pkgs.procps}/bin/pkill -u zabbix zabbix_server; do true; done
|
while ${pkgs.procps}/bin/pkill -u zabbix zabbix_server; do true; done
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user