Portál AbcLinuxu, 1. června 2024 14:42


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: 238×
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: 51 | 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: 24 | 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áknoNahoru

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

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