[LAD] should JACK programs autostart the server?

bill-auger bill-auger at peers.community
Fri Sep 21 07:46:12 CEST 2018

On Thu, 20 Sep 2018 14:48:45 +0000 Rui wrote:
> a. jackdbus *do* auto-start the jack-server if not already running;
> b. legacy jackd *do* auto-start exactly what's in "~/.jackdrc" file; 
> fwiw. i do have this "/absolute/path/to/qjackctl --start" in there,
> so that qjackctl pops up whenever a(ny) jack client application is
> called ;) (*)
> both of the above scenarios are summoned as soon jack_client_open()
> is called *without* the JackNoStartServer option set.
> my.02eur
> cheers

Rui - was that implying that those actions will happen even if

also, that is only to say what actually happens though - you did not
actually give your opinion of whether the client should try to start
the server

almost everyone has agreed that it should not - but one additional
reason that i can add is that it is very much an inversion of the
classic "client/server" relationship - generally speaking, a client
never "causes" the server to do anything - in a proper "client/server"
relationship, the client "requests" some action of the server, and the
server decides whether or not to fulfill that request - any deviation
to that is an unconventional convenience - when the server refuses the
request or does not respond, it is properly the client's responsibility
to alert the user that the server is either broken, or the server admin
does not permit that behavior - IMHO, if the user happens to also be
the admin, that is most typically co-incidental, and it means that they,
as the admin, can and should learn how to configure and enable that
behavior explicitly - it seems to me that this "user-friendly" feature
is only replacing the un-experienced user's disappointment that: "the
JACK program wont start" with: "the JACK program started, but now my
media player has no sound"

also, FWIW strictly speaking, a request to "start yourself" is actually
nonsense - if it were not already running, it could not handle that or
any request - this is really more like a request to "activate yourself"
- that seems to be what Rui's reply was suggesting - that the clients
will request the server to start accepting connections but the server
will refuse if JACK_NO_START_SERVER=1 is set

another reason, for completeness, that was probably everyone took as
implicit, is that: if the server does start at the client's request,
and if the user has not edited ~/.jackdrc, then the server will have the
extremely liberal default buffering and will result in a pretty terrible
"real-time" looping experience - so, the very person that this
"user-friendly" option is catering to, will be the ones that conclude
"this program sucks"

i think what i should do is have it 'JackNoStartServer' by default, and
add a configure option to enable it - then, debian can enable it without
a patch

More information about the Linux-audio-dev mailing list