All my ducks seem to be in order and the correct configs in the right place. But i keep getting this message. As you can see the file exists. It is not empty, but systemctl cannot find it. Any help would be very very appreciated.

•fedora 40 xfce spin •kernel 6.9.9.200 •fucking chromebook

  • qaz@lemmy.world
    link
    fedilink
    arrow-up
    32
    arrow-down
    1
    ·
    edit-2
    6 months ago

    Why are you creating a system service for a user application? It will run Spotify as root unless you override the user. Did you know you can add your own services for your user at ~/.config/systemd/user/?

    Anyway, your method to add the service seems correct (create a file and reload the daemon), so I suspect it might refuse to load the file due to a syntax error in the service. Also perhaps compare the file permissions with the other files in the systemd folder.

      • Ghoelian@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        11
        arrow-down
        1
        ·
        6 months ago

        If you just want it to auto-start at login, you could create a symlink from the .desktop file to ~/.config/autostart.

        Something like ln ~/.local/applications/spotify.desktop ~/.config/autostart (or ln /usr/share/applications/spotify.desktop ~/.config/autostart if that’s where it installed to).

        I believe most DE’s will pick this up automatically.

        • Decq@lemmy.world
          link
          fedilink
          arrow-up
          13
          arrow-down
          1
          ·
          6 months ago

          Spotifyd is a Spotify daemon, not an user application. It makes perfect sense to run as a service. Though personally I would run it as a user service instead of a system service.

          • Ghoelian@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            5
            ·
            edit-2
            6 months ago

            Ahh I thought they were just making a service for the normal spotify application, yeah in that case it makes sense to use a service. Didn’t know spotifyd is something else

        • qaz@lemmy.world
          link
          fedilink
          arrow-up
          7
          arrow-down
          1
          ·
          edit-2
          6 months ago

          KDE also has an easy GUI to configure this. It’s called autostart in the settings app.

    • furikuri@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      6 months ago

      Additionally if you’re looking for it to start on boot without logging in, you might find the loginctl enable-linger command to be of use. Maybe along with a Restart=on-failure policy in the service file if this is for a headless unit or something

    • SFloss (they/them)@lemmy.ml
      link
      fedilink
      English
      arrow-up
      16
      ·
      6 months ago

      It’s an unofficial open-source daemon used by alternative Spotify clients. I used it once for a terminal Spotify client. It’s a pretty neat piece of software.

  • ScottE@lemm.ee
    link
    fedilink
    arrow-up
    11
    ·
    6 months ago

    You need to move the service file to the right directory, for starters.

  • cheer@lemmy.ca
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 months ago

    Looks like it’s in a directory called contrib. Should just be in /etc/systemd/system

  • ZWQbpkzl [none/use name]@hexbear.net
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    6 months ago

    For some reason you’re trying to install it as a system service so I suspect you need to start it with sudo and probably do the daemon reload with sudo. Not entirely sure its in the right folder but it might be fine.
    You can also try systemctl list-unit as a way to debug if its getting found by systemd.

    Fwiw I have spotifyd installed as a user service in ~/.config/systemd/user that way I can start and stop it with systemctl --user instead of sudo systemctl. This is important because spotifyd will disconnect and need to be restarted after inactivity.

  • rasensprenger@feddit.org
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    1
    ·
    6 months ago

    I don’t know much about systemd, but i assume the file should be owned by root? It looks like it isn’t, so try chown root:root spotifyd.service

      • rasensprenger@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        6 months ago

        I’m not sure spotifyd is just spotify (Edit: I checked, its some kind of spotify client meant to be run as a daemon? No idea what permissions that needs)

        And the user that executes a service isn’t determined by who owns the service file, there is a user option in the service config

  • Telorand@reddthat.com
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    edit-2
    6 months ago

    Where is the service file located on your system?

    Did you create it with sudo systemctl edit --force --full, or did you use a text editor (or was it automatically generated by an installer)?

  • Pup Biru@aussie.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    6 months ago

    if it’s in the correct place, correct read permissions/ownership, etc i’ve noticed that this is also the error that’s thrown when selinux denies the read: in my case i’d created the service file in my home directory, moved it, and because of that it was tagged incorrectly

    i’m on my phone and don’t have time to lookup the resolution or how to check, but perhaps someone else can add that detail

    • HotsauceHurricane@lemmy.oneOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      6 months ago

      Its the same service file that i used on another computer that had spotifyd working. So i dont think the file is incorrect, i’ll post the file when i get back to my computer.

  • onTerryO@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    2
    ·
    6 months ago

    I think you need to set the execute bit on your service file.

    sudo chmod +x <your service file>