[mythtv-users] delaying backend startup until the network is up

David Engel david at istwok.net
Mon Dec 10 22:31:57 UTC 2018


On Mon, Dec 10, 2018 at 05:03:02PM -0500, James Abernathy wrote:
> on my production system I use without issue the systemd override provided by. 
> 
> sudo systemctl edit mythtv-backend.service
> 
> [Unit]
> After=NetworkManager-wait-online.service
> 
> When I built a test system using the same HDHR tuners but with the mythhdhrrecorder external recorder I used the same overide setup. However, if I boot my test system I get a lot of errors on 2-4 tuners and the errors are related to opening the tuner. This is solved by doing the following after boot:
> 
> sudo systemctl stop mythtv-backend
> sudo systemctl start mythtv-backend
> 
> What is special about mythhdhrrecorder and external recorder blackbox that makes this systemd override not work???

Does this patch help?  I've used it for several years along with
"Requires=ifup at eth0.service" in my mythbackend.service file to avoid
starting before the network.  I never commited it because I assumed
the normal code worked for everyone else.  In case it matters, I use
Debian testing.

David

diff --git a/mythtv/libs/libmythbase/serverpool.cpp b/mythtv/libs/libmythbase/serverpool.cpp
index c39e99024f..65a5cf0a08 100644
--- a/mythtv/libs/libmythbase/serverpool.cpp
+++ b/mythtv/libs/libmythbase/serverpool.cpp
@@ -117,7 +117,7 @@ void ServerPool::SelectDefaultListen(bool force)
     QList<QNetworkInterface>::const_iterator qni;
     for (qni = IFs.begin(); qni != IFs.end(); ++qni)
     {
-        if ((qni->flags() & QNetworkInterface::IsRunning) == 0)
+        if ((qni->flags() & QNetworkInterface::IsUp) == 0)
             continue;
 
         QList<QNetworkAddressEntry> IPs = qni->addressEntries();

-- 
David Engel
david at istwok.net


More information about the mythtv-users mailing list