diff --git a/recipe/systemd.php b/recipe/systemd.php index 45f1d5e7801580eaf57abf98fbe9abc8b6f398d5..11a450cb8b615f8e2f5391300f3de59626e9186a 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');