Automatische herstart systemd-unit forceren usbip-client

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 23:20
Ik wil een systemd-unit laten herstarten als de verbinding met usbipd uitvalt. usbipd reageert daar zelf helaas niet op.

(Via usbipd deel ik printer zonder wifi via een RPi met het netwerk, de drivers zelf zijn niet beschikbaar voor arm v7)

Zowel met nc als met socat heb ik geen geluk. Terwijl beide applicaties op de command line gewoon direct verdwijnen als ik de RPi herstart.

code:
1
ExecStart=/bin/sh -c "/usr/sbin/usbip attach -r 192.168.1.123 -b %i; /usr/bin/socat PTY TCP4:192.168.1.123:3240"
code:
1
ExecStart=/bin/sh -c "/usr/sbin/usbip attach -r 192.168.1.123 -b %i; nc 192.168.1.123 3240"


In de systemd status blijft de boel gewoon overeind:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Every 2.0s: systemctl status usbip-client@1-1.1.2.service                                                                    pmve: Thu May  9 16:38:00 2024

● usbip-client@1-1.1.2.service - USB/IP client
     Loaded: loaded (/etc/systemd/system/usbip-client@.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-04-29 15:03:24 CEST; 1 weeks 3 days ago
    Process: 727417 ExecStartPre=/bin/sh -c nc -z -w5 192.168.1.123 3240 (code=exited, status=0/SUCCESS)
   Main PID: 727419 (sh)
      Tasks: 2 (limit: 18974)
     Memory: 1.0M
        CPU: 10ms
     CGroup: /system.slice/system-usbip\x2dclient.slice/usbip-client@1-1.1.2.service
             ├─727419 /bin/sh -c /usr/sbin/usbip attach -r 192.168.1.123 -b 1-1.1.2; /usr/bin/socat PTY TCP4:192.168.1.123:3240
             └─727423 /usr/bin/socat PTY TCP4:192.168.1.123:3240

Apr 29 15:03:24 pmve systemd[1]: Starting USB/IP client...
Apr 29 15:03:24 pmve systemd[1]: Started USB/IP client.


Als ik geforceerd 'killall socat' doe, dan triggert dit meteen de herstart van de unit.
Waarom blijven die applicaties plakken als het socket wordt afgesloten, welke applicatie doet dat niet?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=USB/IP client
After=network-online.target
StartLimitInterval=0
StartLimitBurst=5

[Service]
Restart=always
RestartSec=60
RemainAfterExit=no
ExecStartPre=/bin/sh -c "nc -z -w5 192.168.1.123 3240"
ExecStart=/bin/sh -c "/usr/sbin/usbip attach -r 192.168.1.123 -b %i; /usr/bin/socat PTY TCP4:192.168.1.123:3240"
#ExecStart=/bin/sh -c "/usr/sbin/usbip attach -r 192.168.1.123 -b %i; nc 192.168.1.123 3240"
ExecStop=/bin/sh -c "/usr/sbin/usbip detach --port=0"

[Install]
WantedBy=multi-user.target



Vreemd genoeg werkt het nu eigenlijk precies zoals ik wil, maar kennelijk gaat het mis als het langer draait?

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:42

Hero of Time

Moderator LNX

There is only one Legend

RudolfR schreef op donderdag 9 mei 2024 @ 17:06:
Ik wil een systemd-unit laten herstarten als de verbinding met usbipd uitvalt. usbipd reageert daar zelf helaas niet op.
Waarom moet je de unit herstarten en waarom reageert het usbipd proces daar zelf niet op? Wat valt precies uit of stopt met werken?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 23:20
@Hero of Time

's nachts schakelt de RPi + Printer uit. Bij het opnieuw inschakelen blijft de verbinding tussen usbipd en usbip-client dan wel verbroken.
Ik had gehoopt met netcat of socat de verbinding actief te kunnen monitoren, maar dat lukt niet goed.

Mogelijk moet ik iets doen met keepalive, want beide applicaties hebben het niet door dat de verbinding wordt verbroken bij de nachtelijke shutdown. Kort na het opstarten werkt het wel zoals ik verwacht.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:42

Hero of Time

Moderator LNX

There is only one Legend

Dus je weet wanneer de boel uit gaat en weer aan. Waarom dan niet in cron of met systemd.timer de unit herstarten kort nadat het weer aan gaat?

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • RudolfR
  • Registratie: Maart 2011
  • Laatst online: 23:20
Uit wel, aan weet ik niet. Maar een restart na het uitgaan zou inderdaad wel kunnen.

Als onderstaande niet goed werkt ga ik daarvoor.
code:
1
keepalive,keepcnt=3,keepidle=10,keepintvl=10