10

I have a problem with automatic running of service. I would like to run a script after user login. Once I have succeeded, however when I tried to automatize it, I'm getting an error and I can't find a mistake.

Service:

Description=Service desc

[Service]
Type=oneshot
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=/home/albert/.Xauthority
Environment=HOME=/home/albert/
User=albert
Group=albert
RemainAfterExit=true
StandardOutput=journal

ExecStart=/home/albert/.startup-script.sh

[Install]
WantedBy=default.target

location: /home/albert/.config/systemd/user/startup-service.service

permissions: -rw-r--r-- 1 albert albert 306 Jan 2 14:49 startup-service.service

Script

Permissions: -rwxr-x-r-x 1 albert albert 86 Jan 2 13:30 /home/albert/.startup-script.sh

Log

Jan 02 17:03:27 irpi-epsilon systemd[734]: Service desc
-- Subject: Unit UNIT has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit UNIT has begun starting up.
Jan 02 17:03:27 irpi-epsilon systemd[1025]: startup-script.service: Failed at step GROUP spawning /home/albert/.startup-script.sh: Operation not permitted
-- Subject: Process /home/albert/.startup-script.sh could not be executed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- The process /home/albert/.startup-script.sh could not be executed and failed.
-- 
-- The error number returned by this process is 1.
Jan 02 17:03:27 irpi-epsilon systemd[734]: startup-script.service: Main process exited, code=exited, status=216/GROUP
Jan 02 17:03:27 irpi-epsilon systemd[734]: Service desc
-- Subject: Unit UNIT has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- Unit UNIT has failed.
-- 
-- The result is failed.
Jan 02 17:03:27 irpi-epsilon systemd[734]: startup-script.service: Unit entered failed state.
Jan 02 17:03:27 irpi-epsilon systemd[734]: startup-script.service: Failed with result 'exit-code'.

I have called:

systemctl --user daemon-reload
systemctl --user enable startup-script.service
systemctl --user start startup-script

And I'm trying to do it on Raspberry Pi 3. Thanks a lot for pointing me at any direction.

JiangHongTiao
  • 858
  • 2
  • 8
  • 29

1 Answers1

32

If somebody has similar problem then just remove User and Group from service file. I don't know why, but without them it works pretty well. So the final working service description is:

Description=Service desc

[Service]
Type=oneshot
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=/home/albert/.Xauthority
Environment=HOME=/home/albert/
RemainAfterExit=true
StandardOutput=journal

ExecStart=/home/albert/.startup-script.sh

[Install]
WantedBy=default.target
JiangHongTiao
  • 858
  • 2
  • 8
  • 29
  • 2
    I can't do that. I need to run my service as a user. – Folaht Jan 10 '18 at 11:32
  • By the '.startup-script.sh' I'm running chrome browser and it's running under the currently logged in user. So the user 'albert' from settings above. – JiangHongTiao Jan 19 '18 at 14:17
  • Disregard my comment. I was able to run it as user as well despite it not explicitly stated, though I don't know how I achieved that. – Folaht Jan 24 '18 at 10:19
  • 1
    probably it is enough when it's located in user's directory. It's just my assumption I didn't study it in detail. However it's doing what I need, so it's enough :) Thanks for your concern! – JiangHongTiao Jan 24 '18 at 19:48
  • 3
    I can confirm when using --user services it binds the process to the user owning the service. – chikamichi Mar 27 '18 at 01:20
  • What service file, where? – jorisw Jul 10 '23 at 20:06