L'unité (unit) iio-sensor-proxy.service a échoué, avec le résultat failed

Tags: #<Tag:0x00007f509f252618>

salut

Certaine fois il y a ce message au boot: L’unité (unit) iio-sensor-proxy.service a échoué, avec le résultat failed

ça se vérifie dans les log du boot

journalctl -xb | grep failed

et se confirme en interrogeant l’état

systemctl status iio-sensor-proxy.service
● iio-sensor-proxy.service - IIO Sensor Proxy service
   Loaded: loaded (/lib/systemd/system/iio-sensor-proxy.service; static; vendor preset: enabled)
   Active: failed (Result: signal) since Thu 2017-04-27 12:53:37 CEST; 2min 41s ago
 Main PID: 593 (code=killed, signal=ABRT)

avril 27 12:53:34 debian systemd[1]: Starting IIO Sensor Proxy service...
avril 27 12:53:37 debian iio-sensor-proxy[593]: **
avril 27 12:53:37 debian iio-sensor-proxy[593]: ERROR:iio-sensor-proxy.c:178:send_dbus_event: assertion failed: (data->c
avril 27 12:53:37 debian systemd[1]: iio-sensor-proxy.service: Main process exited, code=killed, status=6/ABRT
avril 27 12:53:37 debian systemd[1]: Failed to start IIO Sensor Proxy service.
avril 27 12:53:37 debian systemd[1]: iio-sensor-proxy.service: Unit entered failed state.
avril 27 12:53:37 debian systemd[1]: iio-sensor-proxy.service: Failed with result 'signal'.

Pourtant ça démarre manuellement

root@debian:/# systemctl start iio-sensor-proxy.service

root@debian:/# systemctl status iio-sensor-proxy.service
● iio-sensor-proxy.service - IIO Sensor Proxy service
   Loaded: loaded (/lib/systemd/system/iio-sensor-proxy.service; static; vendor preset: enabled)
   Active: active (running) since Thu 2017-04-27 12:57:55 CEST; 4s ago
 Main PID: 2022 (iio-sensor-prox)
    Tasks: 4 (limit: 4915)
   CGroup: /system.slice/iio-sensor-proxy.service
           └─2022 /usr/sbin/iio-sensor-proxy

Quelques recherches sur le net indiquent un démarrage trop précoce de cette unité et le contournement consiste à retarder la mise en échec de son démarrage avec TimeoutStartSec=15

cat /lib/systemd/system/iio-sensor-proxy.service
[Unit]
Description=IIO Sensor Proxy service

[Service]
Type=dbus
BusName=net.hadess.SensorProxy
TimeoutStartSec=15
ExecStart=/usr/sbin/iio-sensor-proxy
#Uncomment this to enable debug
#Environment="G_MESSAGES_DEBUG=all"


 systemctl status
● debian
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 2017-04-27 13:40:36 CEST; 39min ago

Si vous noter des disfonctionnement dans vos équipements (par exemple Temperature Sensors) ça peut être utile.
https://packages.debian.org/sid/utils/iio-sensor-proxy

Il faut carrément rajouter une tempo d’attente: sleep 5

Modifier /lib/systemd/system/iio-sensor-proxy.service

[Unit]
Description=IIO Sensor Proxy service

[Service]
Type=dbus
BusName=net.hadess.SensorProxy
TimeoutStartSec=60
#
# https://github.com/hadess/iio-sensor-proxy/issues/116
#
ExecStartPre=/bin/sleep 5
ExecStart=/usr/sbin/iio-sensor-proxy
#Uncomment this to enable debug
#Environment="G_MESSAGES_DEBUG=all"

En tout cas , ça temporise bien et ça n’empêche pas de démarrer

 systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.

root@debian:/# systemctl  status iio-sensor-proxy.service
● iio-sensor-proxy.service - IIO Sensor Proxy service
   Loaded: loaded (/lib/systemd/system/iio-sensor-proxy.service; static; vendor preset: enabled)
   Active: active (running) since Wed 2017-08-02 19:32:43 CEST; 1min 34s ago
  Process: 556 ExecStartPre=/bin/sleep 5 (code=exited, status=0/SUCCESS)
 Main PID: 624 (iio-sensor-prox)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/iio-sensor-proxy.service
           └─624 /usr/sbin/iio-sensor-proxy

août 02 19:32:35 debian systemd[1]: Starting IIO Sensor Proxy service...
août 02 19:32:43 debian systemd[1]: Started IIO Sensor Proxy service.

Et c’est le dernier service à démarrer :grinning:

 systemd-analyze blame
          9.106s iio-sensor-proxy.service
          7.996s winbind.service
          7.592s NetworkManager-wait-online.service
systemctl --failed
0 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.