You are not logged in.
I do a lot of music recording with jack running. While I use jack, I always kill pulseaudio, because I don't need it to run in these moments, and to save a bit of ram.
I have a weird problem that I can't seem to figure out. When I start up guitarix, it somehow loads up pulseaudio and I can not stop or kill pulseaudio, it just constantly respawns until I exit guitarix. When guitarix is exited I can kill pulseaudio in a normal way and it stays dead.
My /etc/pulse/client.conf has the autospawn = no uncommented. I have no browsers, flashplayer, mediaplayers, pavucontrol, volumeapplets or anything else running that would make the call for pulseaudio. My window manager is i3-wm with "gaps", I not using any DE or loginmanager, so there shouldn't be any autostart stuff. I tried installing XFCE to test, it kept pulseaudio from respawning when starting guitarix, until first reboot, where the problem returned.
None of my other music software starts up pulseaudio in that way, and I'm trying to figure out why this happens (mostly because I am curious), and how to avoid it. The team from Guitarix tells me that it shouldn't have anything to do with pulseaudio and it isn't a dependency either.
I use:
extra/qjackctl 0.4.4-1
community/jack2 1.9.10-6
community/guitarix2 0.35.6-2
Why is this happening and where and how do I start debugging?
Last edited by brynildsen (2017-12-18 17:32:00)
Offline
Is your ALSA conf defaulting to the pulse backend and maybe that way pulse gets invoked? FWIW on Arch autospawn = no in client.conf is a noop, pulseaudio is invoked via systemd sockets so you will want to look into (and mask to prevent the autostart), the pulseaudio services
systemctl --user start/stop pulseaudio.service
systemctl --user mask/unmask pulseaudio.socket #This is a static socket that invokes pulseaudio as soon as it is called by something, since it's static, disabling won't do much so you'll have to mask it
further info on systemd user services: https://wiki.archlinux.org/index.php/Systemd/User
If that doesn't help, you might want to check what guitarix is calling by starting it with
strace guitarix
Last edited by V1del (2017-12-18 12:05:51)
Offline
I always kill pulseaudio... I have no browsers, flashplayer, mediaplayers, pavucontrol, volumeapplets or anything else running that would make the call for pulseaudio. My window manager is i3-wm.
So why do you have pulse installaed? If you have nothing that uses it and you work so hard to prevent it from starting, just uninstall it.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
I'm reading that as in that he actively uses pulseaudio for everyday tasks unless he is doing music production.
Offline
Ah, could be. It still might be worth considering whether it is needed for those tasks. If it's a nuisance at those times, it had better provide some benefit at others to balance that out. And usually when I hear people talk about the benefits of pulse, it would be for music production, not everyday use.
"UNIX is simple and coherent..." - Dennis Ritchie, "GNU's Not UNIX" - Richard Stallman
Offline
I'm reading that as in that he actively uses pulseaudio for everyday tasks unless he is doing music production.
Exactly.. I used to avoid installing pulseaudio a couple of years ago, but now I actually don't mind it, since many other applications prefer it being present. On my high spec desktop I don't feel it, but on my slower laptop having pulseaudio running also, gives me xruns in jack and I cant get my desired latency settings.
systemctl --user start/stop pulseaudio.service
systemctl --user mask/unmask pulseaudio.socket #This is a static socket that invokes pulseaudio as soon as it is called by something, since it's static, disabling won't do much so you'll have to mask it.
This worked perfectly. I seem to have forgotten the --user , I would have expected them to show up just with the
systemctl list-units --all
option I used earlier when trying to figure out on my own, but they don't.
I am still curious about what makes pulseaudio start. I grepped the lines containing "pulse" from strace guitarix if anyone could point me in the right direction.
openat(AT_FDCWD, "/usr/lib/libcanberra-0.30/libcanberra-pulse.la", O_RDONLY) = 15
read(15, "# libcanberra-pulse.la - a libto"..., 4096) = 1040
openat(AT_FDCWD, "/usr/lib/libcanberra-0.30/libcanberra-pulse.so", O_RDONLY|O_CLOEXEC) = 15
openat(AT_FDCWD, "/usr/lib/libpulse.so.0", O_RDONLY|O_CLOEXEC) = 15
openat(AT_FDCWD, "/usr/lib/pulseaudio/tls/x86_64/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/tls/x86_64/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/tls/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/tls/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/tls/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/tls/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/tls/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/tls", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/x86_64/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/x86_64/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/x86_64/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/pulseaudio/x86_64", 0x7fffed5e30e0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/pulseaudio/libpulsecommon-11.1.so", O_RDONLY|O_CLOEXEC) = 15
openat(AT_FDCWD, "/usr/lib/pulseaudio/libasyncns.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/pikatu/.pulse/client.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/pikatu/.config/pulse/client.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/pulse/client.conf", O_RDONLY|O_CLOEXEC) = 18
open("/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
memfd_create("pulseaudio", MFD_ALLOW_SEALING) = 18
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/pulseaudio.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
mkdir("/run/user/1000/pulse", 0700) = -1 EEXIST (File exists)
openat(AT_FDCWD, "/run/user/1000/pulse", O_RDONLY|O_NOCTTY|O_NOFOLLOW|O_CLOEXEC) = 19
lstat("/run/user/1000/pulse", {st_mode=S_IFDIR|0700, st_size=80, ...}) = 0
connect(19, {sa_family=AF_UNIX, sun_path="/run/user/1000/pulse/native"}, 110) = 0
Last edited by brynildsen (2017-12-18 17:29:16)
Offline
Please use [ code ] tags instead of [ quote ] tags for things like strace output.
https://bbs.archlinux.org/help.php#bbcode
Last edited by 2ManyDogs (2017-12-18 17:26:45)
Offline
libcanberra is a gtk plugin for sound themes. It is loaded for all gtk applications if it is installed. This in turn loads pulseaudio to play these sound effects.
If you uninstall libcanberra or switch it to gstreamer and configure gstreamer to use jack by default, it should work.
Last edited by progandy (2017-12-18 17:30:14)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' |
Offline
Please use [ code ] tags instead of [ quote ] tags for things like strace output.
Fixed Thx.
Offline
libcanberra is a gtk plugin for sound themes. It is loaded for all gtk applications if it is installed. This in turn loads pulseaudio to play these sound effects.
If you uninstall libcanberra or switch it to gstreamer and configure gstreamer to use jack by default, it should work.
Thx for the help
Problem SOLVED
Offline
Please use [ code ] tags not quote tags for pasting output
educated guess, the gtkmm dependency loads libcanberra for some notification/accessibility mumbo jumbo which in turn is configured to use pulse (and afaik doesn't have jack support) and invokes pulseaudio.
They don't show up with your command because that refers to the system instance and not the user instance of systemd, a distinct difference for all relevant commands
If this is [SOLVED] please edit the title of your first post.
Edit: Oh snaked left and right
Last edited by V1del (2017-12-18 17:34:17)
Offline