From 3a1e1f062432fbc867502187972b37f7a6f9fe63 Mon Sep 17 00:00:00 2001 From: talyz Date: Wed, 2 Jun 2021 14:33:13 +0200 Subject: nixos/elasticsearch: Wait for elasticsearch to start up properly Other services that depend on elasticsearch should be started after it, but since the versions we're packaging have to run as "Type=simple", they're started as soon as the elasticsearch binary has been executed, likely winning the race against it. This makes sure elasticsearch is up and running, responding to a simple query, before dependents are started. --- nixos/modules/services/search/elasticsearch.nix | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'nixos/modules/services/search') diff --git a/nixos/modules/services/search/elasticsearch.nix b/nixos/modules/services/search/elasticsearch.nix index 1d7a28d5d24..3f676db2752 100644 --- a/nixos/modules/services/search/elasticsearch.nix +++ b/nixos/modules/services/search/elasticsearch.nix @@ -201,6 +201,13 @@ in if [ "$(id -u)" = 0 ]; then chown -R elasticsearch:elasticsearch ${cfg.dataDir}; fi ''; + postStart = '' + # Make sure elasticsearch is up and running before dependents + # are started + while ! ${pkgs.curl}/bin/curl -sS -f http://localhost:${toString cfg.port} 2>/dev/null; do + sleep 1 + done + ''; }; environment.systemPackages = [ cfg.package ]; -- cgit 1.4.1