0

There's a script which has to be run by a systemd service's ExecStartPre. What would be the proper path to put this script into and how to specify it in the unit? Currently using paths such as these fail (the service won't start due to bad unit file):

  • script.sh
  • ./script.sh
  • /etc/systemd/system/script.sh
  • /usr/local/sbin/script.sh

Here's the error I get in the status:

Process: 8679 ExecStartPre=/usr/local/sbin/script.sh (code=exited, status=203/EXEC)

And here's the script:

#!/bin/bash
if [ ! -e /var/log/myservice ];
        then
                echo "myservice's log directory doesn't exist. creating it."
                mkdir /var/log/myservice
fi
4
  • ExecStartPost or ExecStartPre? Where is the script actually located? – muru Sep 8 '20 at 8:12
  • Fixed it now, I'd tested many times so the log was slightly different. The script is in /usr/local/sbin/ – aderchox Sep 8 '20 at 8:13
  • Is the script actually executable? – muru Sep 8 '20 at 8:14
  • Ah silly me thank you muru. Yes chmod +x fixed it. – aderchox Sep 8 '20 at 8:16
2

Since you don’t need to change your script, the advice in this answer applies: the script should go in /usr/local/sbin. It also needs to be executable. Your ExecStartPre would be

ExecStartPre=/usr/local/sbin/script.sh

However you don’t need a script at all to create a directory:

ExecStartPre=mkdir -p /var/log/myservice

Better yet, use LogsDirectory=, which will create the directory if necessary and ensure it’s available inside the sandbox if the service is sandboxed:

LogsDirectory=myservice
3
  • I thought p was for creating the parents, but I didn't know about -p, --parents no error if existing.... Great! Thanks. – aderchox Sep 8 '20 at 8:18
  • The keen eyed can spot the systemd way of doing this at unix.stackexchange.com/q/567317/5132 . (-: – JdeBP Sep 8 '20 at 8:45
  • Ah yes, thanks @JdeBP, I thought there was something like that but couldn’t find it. – Stephen Kitt Sep 8 '20 at 8:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.