<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jan 4, 2017 at 10:56 PM, Mike Gulick <span dir="ltr"><<a href="mailto:Mike.Gulick@mathworks.com" target="_blank">Mike.Gulick@mathworks.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_902973429566636092divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:calibri,arial,helvetica,sans-serif" dir="ltr">
<p>Hi systemd-devel,</p>
<p><br>
</p>
<p>I'm on Debian 8 with systemd 215 (I realized its old, but its nontrivial to upgrade Debian, especially in a corporate environment).  We have NFS mounted home directories.  I'm trying to configure a vnc server to startup on a specific display at system boot.
  I first tried doing this as a user service:</p>
<p><br>
</p>
<p></p>
<div>$ cat ~/.config/systemd/user/<wbr>vncserver\@.service </div>
<div>[Unit]</div>
<div>Description=VNC Server</div>
<div><span style="font-size:12pt">[Service]</span><br>
</div>
<div>Type=simple</div>
<div>PIDFile=/home/%u/.vnc/%H:%i.<wbr>pid</div>
<div>ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'</div>
<div>ExecStart=/usr/bin/vncserver :%i</div>
<div><span style="font-size:12pt">ExecStop=/usr/bin/vncserver -<wbr>kill :%i</span><br>
</div>
<div><span style="font-size:12pt">[Install]</span><br>
</div>
<div>WantedBy=default.target</div>
<div><br>
</div>
Enabling this service, and using loginctl enable-linger, the service starts up on boot and works fine.  However, when I ssh to other systems, systemd also tries to start a VNC server on those systems as well, and then kills it when I logout (which I assume
 is because we have NFS home directories, and the service is "enabled" in my home directory).  Many developers here frequently run remote processes through SSH, and it seems wasteful to start and stop a vnc server every time I ssh to another system.  I was
 unable to find a way to enable this service only on a specific system.  
<p></p>
<p><br>
</p>
<p>Is there any way to prevent this from starting on other hosts, and instead only start it on boot on the system which I have run "loginctl enable-linger"?  I tried searching for a directive, or WantedBy target which allows me to restrict which hosts to enable
 the service on, but couldn't find anything.</p></div></div></blockquote><div>systemd.unit documents ConditionHost=, which can match either by hostname or by machine-id for exactly this situation.</div><div><br></div><div>There is also the (slightly horrible) ConditionPathExists=/var/lib/systemd/linger/%u.</div></div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Mantas Mikulėnas <<a href="mailto:grawity@gmail.com" target="_blank">grawity@gmail.com</a>></div></div>
</div></div>