<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 12/19/18 11:39 AM, James Abernathy
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:FD8FAB6E-C023-4720-BB02-869ADEC1540F@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="">
        <div style="color: rgb(0, 0, 0); letter-spacing: normal;
          orphans: auto; text-align: start; text-indent: 0px;
          text-transform: none; white-space: normal; widows: auto;
          word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap:
          break-word; -webkit-nbsp-mode: space; -webkit-line-break:
          after-white-space;" class=""><br class="">
        </div>
      </div>
      <div>
        <blockquote type="cite" class="">
          <div class="">On Dec 19, 2018, at 10:45 AM, James Abernathy
            <<a href="mailto:jfabernathy@gmail.com" class=""
              moz-do-not-send="true">jfabernathy@gmail.com</a>>
            wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <blockquote type="cite" style="font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
              <blockquote type="cite" class=""><br
                  class="Apple-interchange-newline">
                I think for safety sake, I'd use the
                full-internet.service and<br class="">
                wait-until-pingable.py approach. But since
                wait-until-pingable.py waits<br class="">
                for what it wants, the
                "After=NetworkManager-wait-online.service" could<br
                  class="">
                really be anything network related because the script
                waits, right??<br class="">
                <br class="">
-------------------------------------full-internet.service------------------------<br
                  class="">
                <br class="">
                [Unit]<br class="">
                Description=Wait for full internet service to be
                available including DNS<br class="">
                After=NetworkManager-wait-online.service<br class="">
                <br class="">
                [Service]<br class="">
                Type=simple<br class="">
                ExecStartPre=/usr/local/bin/wait-until-pingable.py <a
                  href="http://my.hdhomerun.com" class=""
                  moz-do-not-send="true">my.hdhomerun.com</a> 30<br
                  class="">
                ExecStart=/bin/true<br class="">
                <br class="">
                [Install]<br class="">
                WantedBy=multi-user.target<br class="">
              </blockquote>
              Yes, if you do not want to have
              NetworkManager-wait-online.service<br class="">
              enabled, or are not using NetworkManager, you could just
              have<br class="">
              full-internet.service run After=network.target.  That way,
              with the<br class="">
              next update of wait-until-pingable.py, you would also get
              a log<br class="">
              message that tells you how long it had to wait for the
              network to<br class="">
              complete coming up.<br class="">
            </blockquote>
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Since my production system only uses
              Ubuntu Server and static IPs, there is no need for
              NetworkManager. So after network.target would be an
              improvement. I'll test all this some more.</span><br
              style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none;" class="">
            <span style="caret-color: rgb(0, 0, 0); font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; text-align: start; text-indent:
              0px; text-transform: none; white-space: normal;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; float: none; display: inline
              !important;" class="">Jim A</span><br style="caret-color:
              rgb(0, 0, 0); font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; text-align:
              start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              class="">
            <br class="">
          </div>
        </blockquote>
        <div><br class="">
        </div>
        So the first test is to start over and see what’s installed by
        default.  I installed Ubuntu Server 18.04.1 with no snaps or
        packages.  I took the defaults on everything. Since my eno1 mac
        address is in my router as fixed to an IP, I went with the
        default DHCP and got the right address from my router.</div>
      <div><br class="">
      </div>
      <div>1) NetworkManager is not installed </div>
      <div>2) systemd-networkd-wait-onine.service is enabled and active</div>
      <div>3) network.target is enabled and active</div>
      <div><br class="">
      </div>
      <div>I’ll install mythtv-backend with mythhdhrrecorder and see
        what we get with the different delaying tactics for
        mythtv-backend.service</div>
      <div><br class="">
      </div>
      <div>Jim A</div>
      <div><br class="">
      </div>
      <div><br class="">
      </div>
    </blockquote>
    <p>So I did a complete mythtv-backend build on the Ubuntu Server
      18.04.1, including external recorder, mythhdhrrecorder, and setup
      the mythtv-backend.service.d/override.conf to have:</p>
    <p>------------------------------------<br>
    </p>
    <p>[Unit]<br>
      After=full-internet.service</p>
    <p>---------------------------------------<br>
    </p>
    <p>I have full-internet.service set:</p>
    <p>-------------------------------------------------------<br>
      [Unit]<br>
      Description=Wait for full internet service to be available
      including DNS<br>
      After=network.target<br>
      <br>
      [Service]<br>
      Type=simple<br>
      ExecStartPre=/usr/local/bin/wait-until-pingable.py
      my.hdhomerun.com 30 <br>
      ExecStart=/bin/true<br>
      <br>
      [Install]<br>
      WantedBy=multi-user.target</p>
    <p>----------</p>
    <p>This works fine especially since NetworkManager is not installed
      or running.</p>
    <p>I tested booting with the ethernet cable unplugged and it stalled
      for 90 seconds with the console message:</p>
    <p>"A start job is running for Wait for Network to be Configured
      (1min 31s / no limit)"</p>
    <p>It booted to the console after the 90 seconds.<br>
    </p>
    <p>Jim A</p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:FD8FAB6E-C023-4720-BB02-869ADEC1540F@gmail.com">
      <div><br class="">
      </div>
      <div><br class="">
      </div>
      <br class="">
    </blockquote>
  </body>
</html>