title: dbus: difference between system bus and session bus
body: <p>I do not understand the difference between DBus <em>system</em> bus and <em>session</em> bus. For example, when I run the command</p>
  <pre><code>$ dbus-daemon --&lt;session/system&gt; --print-address --fork
  </code></pre>
  <p>it seems to me that the situation is as follows (please correct me if and where I am wrong):</p>
  <ul>
  <li><p>There is no principle difference between these buses. This magical word in options is only a refence to the file name in <code>/usr/share/dbus-1/</code>. If we start <code>dbus-daemon</code> with the option <code>--session</code> then settings from <code>/usr/share/dbus-1/session.conf</code> are used, and for <code>--system</code> settings from <code>/usr/share/dbus-1/system.conf</code> are used. But this is a difference only in settings...</p>
  </li>
  <li><p>There is no difference in using these buses. For both we need to use <code>--print-address</code> when starting the daemon and this address has to be passed somehow to all programs, which are going to use DBus. The system bus seems to not have a special pre-defined address, that is known to all clients.</p>
  </li>
  </ul>
  <p>If the statements above are true, then what is the difference between these types of DBus? Is it like some agreement, that the word <code>system</code> will be used for one group of communications and the word <code>session</code> will be used for some other group of communications? We can definitely start several buses by calling several times</p>
  <pre><code>$ ADDRESS1=$(dbus-daemon --session --print-address --fork)
  $ ADDRESS2=$(dbus-daemon --session --print-address --fork)
  ...
  </code></pre>
  <p>And then use several independent session buses. Can we do the same for system bus?</p>
  <p>Sorry for so many questions...</p>