title: Using variable in command path for ExecStart in systemd service
body: <p>Im trying to make a systemd service like below : </p>
  
  <pre><code>[Unit]
  Description=Syslog
  
  [Service]
  Type=simple
  Environment="TESTEXTSERVICESFILES=/opt/test/extservices"
  Environment="TESTCONFDATA=/storage/test/conf"
  
  ExecStartPre=/bin/echo ${TESTEXTSERVICESFILES}/syslog/bin/nxlog $TESTCONFDATA
  ExecStart=/opt/test/extservices/syslog/bin/nxlog -c ${TESTCONFDATA}/syslog/nxlog.conf
  #ExecStart=/${TESTEXTSERVICESFILES}/syslog/bin/nxlog -c ${TESTCONFDATA}/syslog/nxlog.conf
  
  
  [Install]
  WantedBy=multi-user.target
  </code></pre>
  
  <p>After running '<em>sudo systemctl daemon-reload ; sudo systemctl start test-syslog ; sudo systemctl status test-syslog</em>', I get the following success output: </p>
  
  <pre><code>● test-syslog.service - TestSyslog
     Loaded: loaded (/usr/lib/systemd/system/test-syslog.service; enabled; vendor preset: disabled)
     Active: deactivating (stop-sigterm) since Fri 2018-02-23 10:15:09 UTC; 11ms ago
    Process: 9474 ExecStart=/./opt/test/extservices/test-syslog/bin/nxlog -c ${TESTCONFDATA}/test-syslog/nxlog.conf (code=exited, status=0/SUCCESS)
    Process: 9471 ExecStartPre=/bin/echo /.${TESTEXTSERVICESFILES}/test-syslog/bin/nxlog $TESTCONFDATA (code=exited, status=0/SUCCESS)
   Main PID: 9474 (code=exited, status=0/SUCCESS)
     CGroup: /system.slice/test-syslog.service
             └─9478 /./opt/test/extservices/test-syslog/bin/nxlog -c /storage/test/conf/test-syslog/nxlog.conf
  
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: test-syslog.service: control process exited, code=exited status=0
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: test-syslog.service got final SIGCHLD for state start-pre
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: About to execute: /./opt/test/extservices/test-syslog/bin/nxlog -c ${TESTCONFDATA}/test-syslog/nxlog.conf
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: Forked /./opt/test/extservices/test-syslog/bin/nxlog as 9474
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: test-syslog.service changed start-pre -&gt; running
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: Job test-syslog.service/start finished, result=done
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: Started Test Syslog.
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: Child 9474 belongs to test-syslog.service
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: test-syslog.service: main process exited, code=exited, status=0/SUCCESS
  Feb 23 10:15:09 lt-x260-1606.test.local systemd[1]: test-syslog.service changed running -&gt; stop-sigterm
  </code></pre>
  
  <p>Here the service has started successfully. But when I comment the first ExecStart directive and uncomment the second one I get 
  as failure :</p>
  
  <pre><code>● test-syslog.service - Test Syslog
     Loaded: loaded (/usr/lib/systemd/system/test-syslog.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Fri 2018-02-23 10:11:44 UTC; 11ms ago
    Process: 9243 ExecStart=/$TESTEXTSERVICESFILES/test-syslog/bin/nxlog -c $TESTCONFDATA/test-syslog/nxlog.conf (code=exited, status=203/EXEC)
    Process: 9239 ExecStartPre=/bin/echo /.${TESTEXTSERVICESFILES}/test-syslog/bin/nxlog $TESTCONFDATA (code=exited, status=0/SUCCESS)
   Main PID: 9243 (code=exited, status=203/EXEC)
  
  Feb 23 10:11:44 lt-x260-1606.test.local echo[9239]: /./opt/test/extservices/test-syslog/bin/nxlog /storage/test/conf
  </code></pre>
  
  <p>This time the service cannot start, like it doesnt want to start the process starting by ${TESTEXTSERVICESFILES} variable. Does someone have any idea why it is not working even if command lines are the same in both cases ?</p>