this post was submitted on 05 Jul 2024
49 points (90.2% liked)

Linux

45775 readers
909 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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

all 35 comments
sorted by: hot top controversial new old
[–] HotsauceHurricane@lemmy.one 1 points 1 day ago
Figured it out finally. Thanks for all the help. 
[–] qaz@lemmy.world 31 points 1 week ago* (last edited 1 week ago) (2 children)

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.

[–] HotsauceHurricane@lemmy.one 6 points 1 week ago (1 children)

Ill give it a look tomorrow when i sart my nonsense up again.

[–] Ghoelian@lemmy.dbzer0.com 10 points 1 week ago (2 children)

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 12 points 1 week ago (1 children)

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 5 points 1 week ago* (last edited 1 week 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 6 points 1 week ago* (last edited 1 week ago)

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

[–] furikuri@programming.dev 3 points 1 week 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

[–] pastermil@sh.itjust.works 17 points 1 week ago

Why are you running Spotify as a service? I don't think that's what they mean by SaaS!

[–] MonkderDritte@feddit.de 15 points 1 week ago (1 children)

Why does Spotify need a daemon?

[–] SloppilyFloss@lemmy.ml 16 points 1 week ago (1 children)

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.

[–] HotsauceHurricane@lemmy.one 4 points 1 week ago

Its pretty rad. I used it to run spotify-tui on another computer.

[–] ScottE@lemm.ee 10 points 1 week ago (1 children)

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

[–] HotsauceHurricane@lemmy.one -1 points 1 week ago

I have. Other comment explains.

[–] chr@lemmy.ca 6 points 1 week ago (1 children)

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

[–] HotsauceHurricane@lemmy.one 2 points 1 week ago

I moved it to /system shortly after this and tried again. Still nothing. Same result.

[–] rasensprenger 3 points 1 week ago (2 children)

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

[–] HotsauceHurricane@lemmy.one 2 points 1 week ago

I’ll try that when i get back to it.

[–] MonkderDritte@feddit.de 2 points 1 week ago (1 children)

Nope, don't run Spotify as root. That's a bad idea.

[–] rasensprenger 2 points 1 week ago* (last edited 1 week 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 3 points 1 week ago* (last edited 1 week ago) (1 children)

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)?

[–] HotsauceHurricane@lemmy.one 2 points 1 week ago* (last edited 1 week ago) (2 children)

I made the file this way.

Cd /etc/systemd/system && touch spotifyd.service

Sudo nano -l spotifyd.service

Wrote, saved and quit. Then the commands above. I havent tried sudo systemctl edit —force —full

[–] LemoineFairclough@sh.itjust.works 11 points 1 week ago* (last edited 1 week ago)

You surely need to explicitly cause systemd to process changes after writing to a file. I would be very surprised if it reacted to file system changes automatically.

For example, I recall that I need to execute a command like systemctl daemon-reload after editing a service file: https://unix.stackexchange.com/questions/364782/what-does-systemctl-daemon-reload-do

You might get more useful information from resources like https://www.man7.org/linux/man-pages/man1/systemctl.1.html

[–] Telorand@reddthat.com 3 points 1 week ago

My knowledge is limited, but you should be using that command to create service files, from what I understand. There's some extra stuff that happens in the background (like putting symlinks in the correct places) after you write out the changes using that command.

[–] pupbiru@aussie.zone 3 points 1 week ago* (last edited 1 week ago) (1 children)

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.one 1 points 1 week ago

Ill try remaking it in the correct directory and see if that helps. Thanks!

[–] nieceandtows@programming.dev 2 points 1 week ago (1 children)

What's in your service file? May be you entered some parameters wrong

[–] HotsauceHurricane@lemmy.one 3 points 1 week 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 1 points 1 week ago (1 children)

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

sudo chmod +x

[–] ScottE@lemm.ee 6 points 1 week ago

Nope, they should not be executable.