[Unit] Description=JACK2 Audio Server After=sound.target network.target Wants=sound.target [Service] Type=simple User=pi Group=audio Environment=JACK_NO_AUDIO_RESERVATION=1 Environment=JACK_PROMISCUOUS_SERVER=1 # Real-time scheduling LimitRTPRIO=99 LimitMEMLOCK=infinity LimitNICE=-20 # CPU affinity — pin JACK server to audio cores 1-3 CPUAffinity=1-3 # I/O scheduling — realtime class IOSchedulingClass=realtime IOSchedulingPriority=0 # JACK daemon command ExecStart=/usr/bin/jackd \ -P 70 \ -t 2000 \ -d alsa \ -d hw:USB \ -r 48000 \ -p 128 \ -n 3 \ -M \ -X seq \ -S # Restart on crash (but not on clean shutdown) Restart=on-failure RestartSec=2 [Install] WantedBy=multi-user.target