Rivendell daemons

From Rivendell Wiki

Jump to: navigation, search

Rivendell has several daemons that run in the background helping things work.

The daemons can either be started during system boot up, via the /etc/init.d script, or they can be starteed as needed by the Rivendell programs. In the latter case, where the daemons are started as needed, the pam_rd PAM module can be used to ensure any old instances of the daemons are cleared out when a user logs in.

The order the daemons start is important, as they depend on one another. Here they are listed with the top most items started last:

  • Rivendell App (ex: rdairplay, rdlibrary)
  • rdcatchd (a daemon to run batch jobs capturing and sending out audio)
  • ripcd (the rivendell interprocess communication daemon)
  • caed (the core audio engine daemon, which reads the audio files and plays them to the sound card)
  • jackd [otional] (the jack audio connection kit daemon which allows for routing of audio from one application to another)


JACK daemon startup (in rfa debian packages)

In the default Rivendell configuration we are using, there is an environment variable JACK_START_SERVER set to a flag value of 1, during the user login into the X session (by the script /etc/X11/Xsession.d/98jack-environment ). This environment variable can be tested with the command:

   echo $JACK_START_SERVER

This environment variable tells the jack libraries to start the jack server if it's not present. When the jack server is started automatically like this, it uses the command from /etc/jackdrc . That configuration file is created by the Rivendell package when installed. The command in that configuration file SHOULD be starting the jack daemon with realtime (if it's not we must must investigate why not). My /etc/jackdrc has the following command:

   grauf:~# cat /etc/jackdrc
   /usr/bin/jackd --realtime --temporary --driver alsa --rate 44100

In relation to Rivendell, it is the caed daemon that starts and connects to jack. When any of the Rivendell apps is started (ex: rdairplay, rdadmin, rdlibrary) they first check that caed is running, which in turn will start the jack daemon if needed.

NOTE: It should not be necessary for a user to have to start the jack server, that should happen automatically. While the qjackctl utility can be used to start jack, ideally technical staff is using it to monitor and not start the daemon.


Image:Rivendell_daemons.jpg

Personal tools