Search code examples
systemd

How can I use spaces in systemd command line arguments?


I have a systemd unit with spaces in an argument

ExecStart=command --argument="text text"

It seems that systemd does not recognize the double or single quotes and it splits up the argument into two arguments. Any idea how I can prevent that? I am using systemd v218 within CoreOS.


Solution

  • This is actually surprisingly difficult to do, unfortunately. I stole this info from this answer. The only way to do it is to put your arguments in an environment file and then use them as variables as such (like in /etc/.progconfig):

    ARG1=text
    ARG2=text
    

    Then import the environment file before running your command:

    EnvironmentFile=/etc/.progconf
    ExecStart = command $ARG1 $ARG2