From 7ca1714a78e8d78e4302b32575d920a173c8205c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr> Date: Mon, 18 Jan 2021 16:53:39 +0100 Subject: [PATCH] =?UTF-8?q?systemd:=20d=C3=A9clare=20l'unit=C3=A9=20dans?= =?UTF-8?q?=20"current"=20pour=20=C3=A9viter=20les=20probl=C3=A8mes=20en?= =?UTF-8?q?=20cas=20de=20rollback.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- recipe/systemd.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/recipe/systemd.php b/recipe/systemd.php index 45f1d5e..11a450c 100644 --- a/recipe/systemd.php +++ b/recipe/systemd.php @@ -64,22 +64,21 @@ set('worker.service.name', '{{ application }}-worker'); // Nom de l'unité systemd set('worker.service.unit', '{{ worker.service.name }}.service'); -// Chemin vers le fichier du service -set('worker.service.path', '{{ release_path }}/{{ bin_dir }}/{{ worker.service.unit }}'); +// Chemin vers le fichier du service de cette release +set('worker.service.path', '{{ bin_dir }}/{{ worker.service.unit }}'); desc('Generate the worker definition'); -task('worker:service:generate', "{{ worker.sudo }}/bin/cat >'{{ worker.service.path }}' <<'EOF'\n{{ worker.service.parsed }}\nEOF\n"); +task('worker:service:generate', "/bin/cat >'{{ worker.service.path }}' <<'EOF'\n{{ worker.service.parsed }}\nEOF\n"); desc('Reload the worker definition'); task('worker:service:reload', function (): void { - // Désactive l'unité si elle existe déjà ; elle a peut-être été définie par une autre release - if (test('{{ worker.systemctl }} is-enabled {{ worker.service.unit }}')) { - run('{{ worker.systemctl }} disable {{ worker.service.unit }}'); + if (run('{{ worker.systemctl }} is-enabled {{ worker.service.unit }}') === 'enabled') { + // Recharge toutes les unités + run('{{ worker.systemctl }} daemon-reload'); + } else { + // Installe l'unité + run('{{ worker.systemctl }} enable --force {{ deploy_path }}/current/{{ worker.service.path }}'); } - // Force un rechargement de la config de systemd - run('{{ worker.systemctl }} daemon-reload'); - // Active l'unité dans sa version actuelle - run('{{ worker.systemctl }} enable {{ worker.service.path }}'); }); desc('Start the worker'); -- GitLab