[LAU] jack persistent connections FAQ link

Len Ovens len at ovenwerks.net
Tue Jan 29 18:15:32 CET 2019

On Tue, 29 Jan 2019, Peter P. wrote:

> thanks for your suggestions! I went with jack_plumbing.
> Can anyone confirm that jack_plumbing will need to be started before the
> applications which it is about to manage? It does not manage connections
> already made? I am on the lookout for a way to start jack, jack_plumbing
> and a jack-aware application on the command line and restart each of

On the command line or from a script? From what I see below, it seems from 
a script is really what you want. The CL is still a user interface and not 
automated. Then in scripts there are scripts that run whatever the command 
line can do and there are scripts that can talk to libraries, like python.

> them should they crash/die and restore connections no matter in which
> sequence the three come up again. It seems jack_plumbing needs to be
> started after jackd but before applications it is supposed to manage.
> I am afraid I have to write a script using jack_connect then.

Jack always has to be first. While some applications will start jack for 
you, that generally leads more to confusion and breakage rather than help. 
On my system I have chmod -x jackd and use jackdbus instead. I don't 
suppose it matters much as jackdbus runs from session start here anyway. 
There is nothing that auto restarts jack if it crashes that I know of, but 
all the jack* utilities should error out if jack goes away. So a simple 
script starts one of these and restarts jack on error might work for 
you... but then writing a python script with the jack lib would be better 
anyway. I understand that python scripts are more programing that a bash 
script, but there is a crossover point where it gets so complex to do 
something in bash that it is easier to use python.

> For handling of jack connections on headless machines/command line, I am
> looking for the best way to make connections once an application has
> been started or restarted. It would be great if applications could
> generally honor environment variables like
> 	$ JACK_PORTS=system:playback_1 mediaplayerapp

JACK_DEFAULT=system:playback_9,system:playback_10 would be nice. In fact 
it would be nice to have that as part of jack. Instead each jack 
application need to be set noautoconnect. I use connect=no for pulse for 
example. The problem with that is on restart. more complex programs like a 
daw you want to reconnect everything just like it was becasue there might 
be 100s of connections. So it ends up best with both and having the user 
decide :)

There was some amount of work on session managers in the past, but almost 
all of them have fallen to bitrot and are not used. The recomendation 
seems to be NSM. NSM has also not been touched for a while, is not in the 
debian and derivitives repos and so to use it you need to download the 
source and build it.

in the end, a headless system will require some work and new learning.

Len Ovens

More information about the Linux-audio-user mailing list