General Computing
linux ubuntu bash shell-script sudo
Updated Fri, 20 May 2022 01:21:05 GMT

systemd service not executing the script?

My systemd service is as follows.




echo Hi this working........ > output

It is made executable by sudo chmod 777 /home/pi/ I have started the systemd service using sudo systemctl start caportal. It runs successfully.

output of sudo systemctl status caportal

   Loaded: loaded (/etc/systemd/system/caportal.service; enabled)
   Active: active (exited) since Wed 2019-04-10 07:01:15 UTC; 1h 3min ago
  Process: 286 ExecStart=/home/pi/ (code=exited, status=0/SUCCESS)
 Main PID: 286 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/caportal.service
Apr 10 07:01:15 raspberrypi systemd[1]: Started @CPACK_PACKAGE_DESCRIPTION_SUMMARY@.

Its showing that the service is working fine but the file output is not written with "Hi this working........ ".

But when we run using command `sudo /home/pi/', its working fine.

Why the script is not working when used with systemd service?


Your script is writing to a relative path called output. A relative path does not begin with /; an absolute path begins with /.

The path is relative to the current working directory. Since you did not define WorkingDirectory= and you're running the service as a system service, it defaults to the root directory /. You should be able to find the file at /output (Current working directory / plus the relative path output).

If you are expecting the file to be written at a particular path, you should either specify an absolute path in your script or a WorkingDirectory= under [Service].

Comments (1)

  • +0 – Yeah.. the output is present in root directory — Apr 10, 2019 at 08:19  

External Links

External links referenced by this document: