Portál AbcLinuxu, 13. října 2026 16:45


Dotaz: Po nabootování se služba nespustí

paul2no avatar 3.11.2020 18:53 paul2no | skóre: 16 | blog: Paulovo doupě | Praha
Po nabootování se služba nespustí
Přečteno: 352×
Odpovědět | Admin

Na jednom RPi které se nachází za NATem jsem si vytvořil službu (systemd unit), která má zajistit spuštění autossh po nastartování, aby byl k dispozici vzdálený přístup. Jenže to nefunguje, po nabootování služba neběží a z logu to vypadá, že se snaží spustit ještě před tím, než naběhne síť. Jenže to by se díky tomu network-online.target snad dít nemělo. Ručně službu spustit (service autossh start) můžu bez problému, a funguje to. Kde mám teda chybu?

[Unit]
Description=Autossh
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/bin/autossh -N -M 6000 -R 0.0.0.0:50022:127.0.0.1:22 tunelar@***.***.***.*** -i /home/TunelKey

[Install]
WantedBy=multi-user.target
Pravda, láska a elektrická trakce zvítězí nad lží, nenávistí a trakcí motorovou.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.11.2020 19:26 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Po nabootování se služba nespustí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná blbý dotaz, ale máš tu unitu zapnutou?
paul2no avatar 3.11.2020 19:33 paul2no | skóre: 16 | blog: Paulovo doupě | Praha
Rozbalit Rozbalit vše Re: Po nabootování se služba nespustí
Pokud je tím myšleno systemctl enable, tak ano.
Pravda, láska a elektrická trakce zvítězí nad lží, nenávistí a trakcí motorovou.
3.11.2020 20:02 jejda | skóre: 27 | blog: jejda
Rozbalit Rozbalit vše Re: Po nabootování se služba nespustí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná by mohlo pomoct tu service spustit se spožděním. Nechat to půl minuty zdřímnout před spuštěním jako:
ExecStartPre=/bin/sleep 30
Blbý u tohoto je, že to bude spát nejenom při startu ale taky při restartu. Lepší by bylo u toho autossh zapnout nějaké ukecanější verbose logování, třeba by potom v logu něco bylo, proč to selhalo. Nevím autossh neznám, ale máš tam že to má číst něco z /home/TunelKey. Je ten /home mountnutý dřív než naběhne síť?
paul2no avatar 3.11.2020 20:32 paul2no | skóre: 16 | blog: Paulovo doupě | Praha
Rozbalit Rozbalit vše Re: Po nabootování se služba nespustí

S tím autossh jako takovým problém není. Služba selže pouze při nabootování. Pokud ji potom spustím znovu, tak už normálně běží. V logu je, že síť není dostupná.

lis 02 10:42:24 rpi autossh[572]: starting ssh (count 1)
lis 02 10:42:24 rpi autossh[572]: ssh child pid is 586
lis 02 10:42:24 rpi autossh[586]: ssh: connect to host ***.***.***.*** port 22: Network is unreachable
lis 02 10:42:24 rpi autossh[572]: ssh exited prematurely with status 255; autossh exiting

To zpoždění vyzkouším, ale teď to RPi nemám u sebe a nechci riskovat, že udělám něco po čem se k němu už nepřipojím.

Pravda, láska a elektrická trakce zvítězí nad lží, nenávistí a trakcí motorovou.
michich avatar 4.11.2020 10:40 michich | skóre: 51 | blog: ohrivane_parky
Rozbalit Rozbalit vše Re: Po nabootování se služba nespustí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Která služba ti nahazuje síť? Je k ní odpovídající *-wait-online.service služba zařazená před network-online.target?

network-online.target přímo v sobě nemá žádnou magii pro detekci síťového připojení. Čekání na síť musí poskytnout jiná služba, na kterou network-online.target počká.

man systemd.special: network-online.target - ... This target unit is intended to pull in a service that delays further execution until the network is sufficiently set up. What precisely this requires is left to the implementation of the network managing service.

Založit nové vlákno • Nahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.