nome da instância do systemd (% i) não está funcionando no ExecStart

3

Por alguma razão, o systemd não está substituindo %i ou %I pelo nome da instância no ExecStart

/systemd/system/service/[email protected]

[Unit]
Description=Foo service for %I

[Service]
User=keith
ExecStart=/path/to/foo/%i/food
...

/ path / to / foo / bar / food

#/bin/bash

node /path/to/foo/bar/bard.js

Então eu corro:

$ sudo systemctl daemon-reload
$ sudo systemctl start foo@bar
$ sudo systemctl status foo@bar
● [email protected] - Foo service for bar
   Loaded: loaded (/etc/systemd/system/[email protected]; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2016-09-30 19:07:02 EDT; 6s ago
  Process: 18705 ExecStart=/path/to/foo/%i/food (code=exited, status=203/EXEC)
 Main PID: 18705 (code=exited, status=203/EXEC)

Sep 30 19:07:02 kptow systemd[1]: Started Foo service for bar.
Sep 30 19:07:02 kptow systemd[1]: [email protected]: Main process exited, code=exited, status=203/EXEC
Sep 30 19:07:02 kptow systemd[1]: [email protected]: Unit entered failed state.
Sep 30 19:07:02 kptow systemd[1]: [email protected]: Failed with result 'exit-code'.

O %I na descrição é substituído, mas o %i no ExecStart não. Eu tentei usar %i / %I , mas não funciona.

    
por Keith 01.10.2016 / 01:15

1 resposta

4

O primeiro argumento para ExecStart= deve ser um caminho absoluto para um executável. Substituições não são aceitas.

Se você está apenas carregando um script bash que inicia o Node.js, você pode fazer isso explicitamente:

ExecStart=/bin/bash /path/to/foo/%i/food
    
por 01.10.2016 / 03:03

Tags