journalctl -u NetworkManager.service
告诉我dispatcher: 01-ifupdown [...] /etc/NetworkManager/dispatcher.d/01-ifupdown exited with error status 1
这几乎肯定是我们已挂钩/符号链接的脚本/etc/network/if-up.d/our-hook
,然而所有这些脚本直接运行时都不会出现错误。
在哪里可以找到,或者如何启用网络管理器运行的所有事物的完整捕获stdout
(stderr
将详细程度缩小到if-up.d
显然也可以)。深入了解与此答案相关的术语也会有所帮助 - 我确信此信息存在,但我的搜索功能不够。
ubuntu server 18.04
有问题的脚本以以下内容开头。在测试设备上,/bin/sh
符号链接到dash
#!/bin/sh
set -xue
echo "[...] $(date)"
答案1
事实证明不是 NetworkManager.service
将有相关日志:
不同的服务,NetworkManager-dispatcher.service
是运行脚本的服务/etc/network/if-*.d/*
,并且journalctl
该服务的实际上具有来自操作的所有stdout
/ 。stderr
令人好奇的是,潜在的错误是一个exec format error
来自run-parts
;我们生成钩子的脚本有一个我没有注意到的额外的换行符:
# --> extra newline here, before ~shebang
#!/bin/sh
...