In some applications, like headless or embedded systems, it can be helpful to autostart the jack server, followed by additional programs for sound processing. In this way, a system can boot into the desired configuration without additional user interaction.
There are several ways of achieving this. The following example uses
systemd services for a user named
The JACK Service
The JACK service needs to be started before the
clients. It is a system service and needs just a few
entries. This is a minimal example - depending on the application and hardware settings,
the arguments after
ExecStart=/usr/bin/jackd need to be adjusted.
[Unit] Description=Jack audio server [Install] WantedBy=multi-user.target [Service] Type=simple PrivateTmp=true Environment="JACK_NO_AUDIO_RESERVATION=1" ExecStart=/usr/bin/jackd -d alsa User=student
The above content needs to be placed in the following file (root privileges are required for doing that):
Afterwards, the service can be started and stopped via the command line:
In order to start the service on every boot, it needs to be enabled:
If desired, the service can also be deactivated:
The Client Service(s)
Once the JACK service is enabled,
client software can be started.
A second service is created, which
is executed after the JACK service.
This is ensured by the additional
entries in the
The example service launches a Puredata
patch without GUI:
[Unit] Description=Synthesis Software After=jack.service Requires=jack.service [Install] WantedBy=multi-user.target [Service] Type=idle PrivateTmp=true ExecStartPre=/bin/sleep 1 ExecStart=/usr/bin/puredata -nogui -jack ~/PD/test.pd User=student
The above content needs to be placed in the following file:
The service can now be controlled with the above introduced
systemctl commands. When enabled, it starts on every boot
after the JACK server has been started: