wwmm / easyeffects

Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications
GNU General Public License v3.0
6.49k stars 269 forks source link

Needs a way to manually restart the service #1355

Open 1player opened 2 years ago

1player commented 2 years ago

EasyEffects Version

6.2.1

What package are you using?

Flatpak (Flathub)

Distribution

Fedora 35 GNOME

Describe the bug

Due to recent pipewire bugs, the easyeffects service, which is configured to start at login, crashes. Right now when this happens I have to open the EasyEffects GUI and minimise it so it does its thing, or restart my whole session to have the background service restored.

Please give users a way of restarting the service from the application, or just start the background process, when configured to do so, when the GUI starts.

Expected Behavior

No response

Debug Log

No response

Additional Information

No response

wwmm commented 2 years ago

What you ask can not be done. The reason is that does not exist a service in EasyEffects in the usual meaning of the word. We make use of a gtk feature that allows a gui application to keep running in the background when its window is closed. In order to make use of it the application has to be started with the command line option --gapplication-service. That is what your autostart file is doing. And as it usually happens with most command line options it is something that can only be done in the application initialization phase.

So at the end of the day EasyEffects is still a gui application. We just pretend to be a service. In order to do what you want we would have to first rewrite EasyEffects implementing a true service and a client. What would definitely be a pain to do considering the amount of level meters and other stuff that we currently have.

All that being said I wonder why you are having crashes in the first place. Here on Arch Linux I am using the latest versions of EasyEffects, PipeWire(0.3.43) and GNOME(41.1) and the service starts as usual on login. No crashes.

IDeathByte commented 2 years ago

for me i create user systemd service steps:
1) go to /home/%user%/.config/systemd/user/ 2) make our easyeffects.service file that's contain:

[Unit]
Description=easyeffects autostart config

[Service]
Restart=always
RestartSec=3
ExecStart=/usr/bin/easyeffects --gapplication-service
Nice=-10

[Install]
WantedBy=default.target

3)

systemctl --user daemon-reload
systemctl --user start easyeffects.service
systemctl --user status easyeffects.service

if all fine make final step: systemctl --user enable easyeffects.service

and after this you can disable autostart checkbox maybe not perfect, but it works

skjnldsv commented 9 months ago

What I use on my setup (Arch, with pipewire, wireplumber and pipewire-pulse)

cat /home/admin/.config/systemd/user/easyeffects.service

[Unit]
Description=Keep EasyEffects Up
Requires=pipewire-pulse.socket
ConditionUser=!root
Wants=pipewire.service pipewire-session-manager.service
After=pipewire.service pipewire-session-manager.service
BindsTo=pipewire.service
StartLimitIntervalSec=60
StartLimitBurst=3

[Service]
Type=simple
ExecStart=/usr/bin/easyeffects --gapplication-service
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=pipewire.service
systemctl --user status pipewire.service pipewire-pulse.service easyeffects.service pipewire-session-manager.service

● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-01-09 11:14:53 CET; 49min ago
TriggeredBy: ● pipewire.socket
   Main PID: 1230808 (pipewire)
      Tasks: 4 (limit: 38421)
     Memory: 42.0M (peak: 42.9M)
        CPU: 3min 49.795s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─1230808 /usr/bin/pipewire

● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-01-09 11:16:15 CET; 48min ago
TriggeredBy: ● pipewire-pulse.socket
   Main PID: 1234806 (pipewire-pulse)
      Tasks: 3 (limit: 38421)
     Memory: 55.4M (peak: 56.4M)
        CPU: 5min 29.919s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire-pulse.service
             └─1234806 /usr/bin/pipewire-pulse

● easyeffects.service - Keep EasyEffects Up
     Loaded: loaded (/home/admin/.config/systemd/user/easyeffects.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-01-09 11:21:57 CET; 42min ago
   Main PID: 1251100 (easyeffects)
      Tasks: 14 (limit: 38421)
     Memory: 56.9M (peak: 57.7M)
        CPU: 8min 31.882s
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/easyeffects.service
             └─1251100 /usr/bin/easyeffects --gapplication-service

● wireplumber.service - Multimedia Service Session Manager
     Loaded: loaded (/usr/lib/systemd/user/wireplumber.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-01-09 11:16:15 CET; 48min ago
   Main PID: 1234803 (wireplumber)
      Tasks: 7 (limit: 38421)
     Memory: 12.8M (peak: 13.6M)
        CPU: 1min 39.237s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/wireplumber.service
             └─1234803 /usr/bin/wireplumber