-
Notifications
You must be signed in to change notification settings - Fork 222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jamulus server 3.7.0 terminates when started as systemd service when sending SIGUSR2 to toggle recording #1515
Comments
What happens if you start recording from the command line? |
No, there isn't a crash. Jamulus is terminated (or restarted by systemd). Running from command line works fine. If I send But in |
Running
|
OK, found root cause. To handle So For me it appears that the shell itself is raising the So in my point of view, your in the .deb package provided systemd file As a workaround you have to start jamulus directly, but you will loose the output in journalctl log. If you can confirm this. You should change |
Thanks for opening this issue and doing the analysis! At first glance, I am too wondering why ExecStart is wrapped in I think we should provide a way which both works regarding signal handling and regarding logging. If this requires changes to the unit file, those should get implemented. Do you have any idea regarding the logging issue? |
I did a clean setup for the service file and logging is working fine for journalctl. Don't know what happend. Running jamulus from command line:
Sending I can only assume, that systemd is terminating all spawn processes, if the master process terminates. |
The What is needed is to use
|
@softins This works 👍 But I always thought, that |
That's the first time I've seen the use of |
You should change |
Sorry can you explain? |
You are providing in your .deb package a systemd service file. As @softins pointed out above. In your documentation, you are providing an example file, which starts jamulus directly. Which works fine, but differs from the provided file which make use of |
OK. Since we've not had anyone report any problem with the Exec line without |
I am preparing a PR to fix this properly, by using |
This fixes the signal handling issue with systemctl reported in jamulussoftware#1515, but still allows shell substitution of environment variables.
@softins I did an additional test. If you are going to use |
* Use exec when starting process via the shell. This fixes the signal handling issue with systemctl reported in #1515, but still allows shell substitution of environment variables. * Use jamulus.io instead of fischvolk.de Uses anygenre3.jamulus.io as an example, because that server is less used.
Describe the bug
After updating to version 3.7.0 jamulus server is terminating by SIGTERM (15) after recieving SIGUSR2(12) to toggle recording.
To Reproduce
Run jamulus 3.7.0 as headless server.
Send command to toggle recording
sudo systemctl kill -s SIGUSR2 jamulus
The recording starts, but after 30 sec the services restarts and all clients are disconnected.
Expected behavior
Same behavior as before the update. Sending
SIGUSR2
toggles Recording on and off. But does not terminate the system.Running jamulus 3.7.0 from console works fine.
SIGUSR2
works as expected.Screenshots
See log above.
Operating system
Linux jamulus 5.8.0-45-lowlatency #51-Ubuntu SMP PREEMPT Fri Feb 19 15:11:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Same failure on self compiled headless binary or using ubuntu .deb package.
Version of Jamulus
3.7.0.
Previous version was not affected.
Additional context
The text was updated successfully, but these errors were encountered: