<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - Drop-in files to override units files does not work"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=75104">75104</a>
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>systemd-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Drop-in files to override units files does not work
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>systemd-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>rfnx.poubelle@gmail.com
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>general
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>systemd
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Hello,

In order to manage dependency between systemd units, I wanted to use drop-in
files to override settings in unit files, but some options are not parsed. 

The manpage says : "Along with a unit file foo.service, a directory
foo.service.d/ may exist. All files with the suffix ".conf" from this directory
will be parsed after the file itself is parsed. This is useful to alter or add
configuration settings to a unit, without having to modify their unit files.
Make sure that the file that is included has the appropriate section headers
before any directive."

It works for options like "Require" or "After" (Unit section), but not for
"RequiredBy" or "WantedBy" (Install section). Maybe it doesn't work with other
options but I couldn't try them all. So at the moment I have to stay with the
old and not recommended method, as the manpage says : create a unit file with
the same name in /etc/systemd/system to override the one in
/usr/lib/systemd/system. This way, it works perfectly.




Step to reproduce (on Archlinux) :

- Create a directory in /etc/systemd/system with the name "unit.d" (replace
unit with the name of an installed unit, for example postgresql.service)

-create a .conf file which contain a RequiredBy option with the name of an
other installed unit)

-do "systemctl daemon-reload" to reload unit files

-do "systemctl status unit" (replace unit with the name of the modified unit,
for example postgresql.service) or "systemd-delta" to verify your .conf file
has been parsed

-do "systemctl show -p "RequiredBy" unit" (replace unit with the name of the
modified unit) to verify if the RequiredBy option has been parsed

Result : RequiredBy isn't modified by the .conf file</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>