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.
In de systemd status blijft de boel gewoon overeind:
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?
Vreemd genoeg werkt het nu eigenlijk precies zoals ik wil, maar kennelijk gaat het mis als het langer draait?
(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?