How to debug "autostart.service" (MozillaVPN)

I’m once more lost with all the different services/ways that Linux offers to autostart a program and was hoping you could point me in the right direction. I’m running mozillavpn (from AUR) and the build-in launch on startup feature is not working. Looking through journalctl I found this line:

Nov 28 12:34:12 roedelkiste systemd[1050]: app-mozillavpn\x2dstartup@autostart.service: Skipped due to 'exec-condition'.

And this is where I got lost:

  • How is a service like this defined?
  • How can I see what is happening here?
  • Where can I find and possible edit it?
  • What could “Skipped due to ‘exec-condition’” mean?

(I know that I could go the easy way and just use the KDE autostart, but this isn’t working properly for the mozillavpn app - and I want to learn something about how my system works :slight_smile: )

Hi @AllesMeins,

This is because a condition that needs to be met for the service to start isn’t started yet, so the service couldn’t start.

a Service is just a plain text file with the extension .service that systemd can parse. a Service is defined by creating the text file in corrrect directory (either /etc/systemd/system for system-wide services, or somewhere in your home directory that I can’t remember the locatio9n of now, for user specific services.)

You can analyze the output of

systemctl status app-mozillavpn\x2dstartup@autostart.service

and/or:

journalctl -xeu app-mozillavpn\x2dstartup@autostart.service

Depending on wether it’s system-wide or user only;

  • for system-wide services:

    sudo systemctl edit app-mozillavpn\x2dstartup@autostart.service
    
  • for user services:

    systemctl edit --user app-mozillavpn\x2dstartup@autostart.service
    

Followed by reloading systemd to apply changes:

sudo systemctl daemon-reload

More info:

https://wiki.archlinux.org/title/Systemd

Hope this helps!

2 Likes

Thank you for this detailed answer. I think this will help me a lot!

you need --user

1 Like

Thank you! Forgot about this…

Hmm, doesn’t seem to be as easy as I thought. None of the commands do work - there doesn’t seem to be such a service - but it still shows up in the bootlog. Any ideas what I might be doing wrong?

$  journalctl -b | grep mozilla                                                                                                                                                             
Nov 28 14:46:16 roedelkiste systemd[1039]: app-mozillavpn\x2dstartup@autostart.service: Skipped due to 'exec-condition'.

$  systemctl --user status app-mozillavpn\x2dstartup@autostart.service                                                                                                                            
Unit app-mozillavpnx2dstartup@autostart.service could not be found.

$  sudo systemctl status app-mozillavpn\x2dstartup@autostart.service                                                                                                                       
Unit app-mozillavpnx2dstartup@autostart.service could not be found.

$  sudo systemctl edit app-mozillavpn\x2dstartup@autostart.service                                                                                                                  
No files found for app-mozillavpnx2dstartup@autostart.service.

Run 'systemctl edit --force --full app-mozillavpnx2dstartup@autostart.service' to create a new unit.
$ journalctl -xeu app-mozillavpn\x2dstartup@autostart.service                                                                                                                             
~

-- No entries --

$ sudo journalctl -xeu app-mozillavpn\x2dstartup@autostart.service                                                                                                                          
~

-- No entries --

Rather do a

sudo systemctl list-units | grep --ignore-case moz

…to find the service name.

Thanks - I figured it out. I needed to escape the \ in the service name. That lead me to a .desktop-file created by mozillavpn which seems to be only written for Gnome, so this probably isn’t the reason why it is not working for me.

1 Like

Yeah, don’t know about that, so not commenting.

:wink:

Yeah, looks like something I’ve to take to the mozilla-folks and hope that they’ll add proper KDE support at some point in the future. Thank you for all your help!

1 Like

Where you got this idea from?

Looks like you’re not configuring something right.

I honestly don’'t know about that. BUT I doubt it.

AFAIK Mozilla VPN uses Wireguard, which isn’t developed by Mozilla itself, and is desktop environment-agnostic. In fact, you don’t even need a DE.

How did you get a hold of the .desktop file, what is the contents of it and what makes you say it’s Gnome-only?

Edit:

Because of this, I removed the solution-mark. If a moderator or someone puts it back:

:man_shrugging:

Where you got this idea from?

Because the the .desktop-file the service is based on contains the lines

OnlyShowIn=GNOME;Unity;MATE;
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true

And the service-status also shows that it wasn’t run, because I’m not running gnome:

app-mozillavpn\x2dstartup@autostart.service - MozillaVPN
     Loaded: loaded (/etc/xdg/autostart/mozillavpn-startup.desktop; generated)
     Active: inactive (dead) (Result: exec-condition) since Tue 2023-11-28 14:46:16 CET; 2h 13min ago
  Condition: start condition unmet at Tue 2023-11-28 14:46:16 CET; 2h 13min ago
       Docs: man:systemd-xdg-autostart-generator(8)
    Process: 1335 ExecCondition=/usr/lib/systemd/systemd-xdg-autostart-condition GNOME:Unity:MATE  (code=exited, status=1/FAILURE)
        CPU: 24ms

Edit: the complete .desktop-file (/etc/xdg/autostart/mozillavpn-startup.desktop)

[Desktop Entry]
Name=MozillaVPN
Version=1.5
Exec=/usr/bin/mozillavpn ui -m -s
Comment=A fast, secure and easy to use VPN. Built by the makers of Firefox.
Type=Application
Icon=mozillavpn
OnlyShowIn=GNOME;Unity;MATE;
X-GNOME-AutoRestart=false
X-GNOME-Autostart-Notify=true

By the way, how did you install it? What happens if you run Exec line from terminal?

Via package manager (AUR). First the regular version and since this wasn’t the newest version and autostart wasn’t working I tried the git-package.

If I run the Exec nothing happens, if I remove the -s flag, the client starts minimized.