質問があります。この場合、ExecStartPre =がFAILUREステータスになるのはなぜですか?すべてが正常に機能しているように見えるためです。誰かが何が起こっているのか説明できますか?
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2018-04-03 05:04:52 MSK; 3min 54s ago
Docs: man:interfaces(5)
Process: 473 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Process: 467 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=1/FAILURE)
Main PID: 473 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 36864)
CGroup: /system.slice/networking.service
апр 03 05:04:52 debian systemd[1]: Starting Raise network interfaces...
апр 03 05:04:52 debian systemd[1]: Started Raise network interfaces.
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::215:5dff:fe01:303 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:01:XX:XX txqueuelen 1000 (Ethernet)
RX packets 9032 bytes 6039361 (5.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6961 bytes 915411 (893.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 114 bytes 34267 (33.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 114 bytes 34267 (33.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
これは、このコマンドがステータス1で終了したことを意味します。
/bin/sh -c '[ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle'
次の場合、ステータス1で終了した可能性があります。
CONFIGURE_INTERFACES=no
設定されています(/ etc / default / network内)。またはifquery --read-environment --list --exclude=lo
空を返します。またはudevadm settle
出口1最初の2つは、それ自体は実際にはエラーではありません...udevadm settle
実行する必要がある時期を決定するのに役立つことがほとんどです...したがって、ある意味で、status = 1で失敗するExecStartPreは「正常」である可能性があります。 「ある意味で。
私のシステムをチェックすると、ifquery
コマンドが空の出力を返すシステムがあるので、それはおそらくstatus = 1の説明です。
のif
代わりにを使用することで&&
、Debianはこれを少し良くすることができたと思います。その場合、条件が真でない場合、コマンドはステータス1ではなく0で終了します。
/bin/sh -c 'if [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ]; then udevadm settle; fi'
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加