Portál AbcLinuxu, 31. října 2025 22:55
v kostce - přemýšlím, jak bych měl definovat službu v systemd tak, aby čekala na inicializaci spuštěné aplikace a teprve poté byly aktivovány další jednotky, které na službě závisí. Příklad: Aplikace se po spuštění procesu nějakou dobu (cca 40 sec) inicializuje a když má hotovo, začne naslouchat na TCP portu a obsluhovat požadavky.
Pokud aplikaci spustím jako service v systemd, tak ten jí považuje za aktivní v okamžiku, kdy spustí její proces, a dál se o to nezajímá. Ostatní systemd služby, které jsou na ní závislé, těch 40 sekund zbytečně hází chyby.
Jde mi tedy o to, jak definovat, aby byla jednotka aktivní např. až při dostupnosti portu nebo existenci "ready-flag" souboru, apod.
Napadají mě jen dvě neelegantní řešení:
Napadá někoho, jak toto řešit?  V upstart bylo možné emitovat signály, kterými jsem toto vyřešil.
 V upstart bylo možné emitovat signály, kterými jsem toto vyřešil.
Řešení dotazu:
 15.6.2016 15:14
Josef Kufner             | skóre: 70
        15.6.2016 15:14
Josef Kufner             | skóre: 70
            
            
        dbus nebo notify, které dají systemd vědět, že nastartovaly, přes dbus nebo přes sd_notify.
            
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.