1

I have recently installed FreeFileSync on a my PC and managed to to getting the RealTimeSync working perfectly fine. All that is left to do is automatically call the script at start up. Initially, I used Cron with the @reboot parameter but that did not work out. So I decided to use systemd instead. I have created a user service file called sync.service which I have enabled and works perfectly fine when manually called via the systemctl --user start sync_1 command. However, it encounters errors on startup. Could anybody please? I am not sure where I am going wrong.

[Unit]
After=network.service

[Service]
Environment="DISPLAY=:0"
ExecStart=/home/user/Desktop/sync.sh

[Install]
WantedBy=default.target

Below is the error I encounter when I check the status of the systemd file after startup.

sync_1.service Loaded: loaded (/etc/xdg/systemd/user/sync_1.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2020-06-14 21:19:19 BST; 47s ago Process: 1859 ExecStart=/home/user/Desktop/sync.sh (code=exited, status=255/EXCEPTION) Main PID: 1859 (code=exited, status=255/EXCEPTION)

7
  • 1
    Please provide output of journalctl -xe command. – KK Patel Jun 16 '20 at 16:18
  • It's executing before you login and start the X server that DISPLAY=:0 refers to. – waltinator Jun 16 '20 at 23:15
  • @waltinator thanks for the response, how might I go about doing that exactly? – user3915932 Jun 17 '20 at 20:09
  • @KKPatel thank you for the response, any way I can attach the log here as a file? – user3915932 Jun 17 '20 at 20:10
  • You can edit question and put logs or you can use pastebin.ubuntu.com and provide link in question. – KK Patel Jun 17 '20 at 20:12
0

Your .service file contains DISPLAY:=0, whitch is a pointer to the X server's screen 0.

However, the X server is not started at system startup time, but only after you perform a GUI login.

So, when /home/user/Desktop/sync.sh, at system startup time, tries to talk to the X server handling DISPLAY:=0, there's NO X server, and things blow up real good.

The startup of X server dependent tasks should be done by a .desktop file in $HOME/.config/autostart/. Read man desktop-file-edit desktop-file-validate. Find examples with locate .desktop. Read the "Desktop Entry specifacation" https://freedesktop.org/wiki/Specifications/desktop-entry-spec/

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.