- Note:
~/opt/bin/MemoryDiagnostics
is a bash script and is executable.
$ cat MemoryDiagnostics.service
[Unit]
Description=MemoryDiagnostics Service
[Service]
ExecStart="%h/opt/bin/MemoryDiagnostics"
SyslogIdentifier=MemoryDiagnosticsService
[Install]
WantedBy=default.target
$ systemctl --user enable MemoryDiagnostics.service
Created symlink /home/nikhil/.config/systemd/user/default.target.wants/MemoryDiagnostics.service → /home/nikhil/.config/systemd/user/MemoryDiagnostics.service.
Then Reboot. Observation: Service fails after reboot
$ systemctl --user status MemoryDiagnostics.service
● MemoryDiagnostics.service - MemoryDiagnostics Service
Loaded: loaded (/home/nikhil/.config/systemd/user/MemoryDiagnostics.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2021-09-02 02:34:32 CEST; 11min ago
Process: 1549 ExecStart=/home/nikhil/opt/bin/MemoryDiagnostics (code=exited, status=1/FAILURE)
Main PID: 1549 (code=exited, status=1/FAILURE)
Sep 02 02:34:29 X550JX systemd[1147]: Started MemoryDiagnostics Service.
Sep 02 02:34:32 X550JX systemd[1147]: MemoryDiagnostics.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 02:34:32 X550JX systemd[1147]: MemoryDiagnostics.service: Failed with result 'exit-code'.
- Service starts when done manually:
$ systemctl --user start MemoryDiagnostics.service
$ systemctl --user status MemoryDiagnostics.service
● MemoryDiagnostics.service - MemoryDiagnostics Service
Loaded: loaded (/home/nikhil/.config/systemd/user/MemoryDiagnostics.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-09-02 02:48:13 CEST; 4s ago
Main PID: 9941 (bash)
CGroup: /user.slice/user-1000.slice/user@1000.service/MemoryDiagnostics.service
├─9941 bash /home/nikhil/opt/bin/MemoryDiagnostics
└─9970 sleep 121
Sep 02 02:48:13 X550JX systemd[1147]: Started MemoryDiagnostics Service.
Why does the shell script fails after reboot, but works perfectly fine when started manually?