使用 systemD 进行 Python 脚本自动化 - 使用 nmcli 命令的问题(网络管理器)

使用 systemD 进行 Python 脚本自动化 - 使用 nmcli 命令的问题(网络管理器)

我是一名嵌入式电子工程师,在两个月的时间里,我一直在为我的一个客户使用基于 Debian 的发行版进行开发。

我实际上正在开发一个处理操作系统和 4G 调制解调器之间的通信和连接的项目。调制解调器由 AT 命令管理,操作系统连接主要由pingcurl命令管理。

python 脚本到目前为止运行良好,并且已经测试了大约 2 周。我对此很满意,现在,我正处于脚本自动化阶段。

我尝试使用 systemd 和老式方法(init.d)在启动时启动我的脚本。两者都正确启动了脚本,但我的pingcurl命令的输出出现问题。

使用 AT 命令初始化调制解调器后,我将编写nmcli device connect来自 NetworkManager 包的命令脚本,以从网络获取 IP,然后可以使用ping和与网络进行交互curl

当作为 systemd 服务启动或在 init.d 的帮助下启动时,命令的输出失败。我无法 ping 主机,curl 结果是000

尽管如此,在查看网络管理器状态时,仍然存在有效的设置,包括:

  1. IP地址
  2. DNS服务器
  3. 默认网关/路由

但即使在脚本之外,使用pingcurl命令也会出现与前面描述的相同的失败。

在寻找解决方案时,我发现网络管理器正在使用 DBUS 会话来使服务正常工作,并且使用启动时启动的脚本来实现此类包似乎很复杂。

我有点卡住了,我想知道是否有人有进一步排除故障的建议?

我已经将网络管理器日志记录设置为调试,但没有任何相关信息。

非常感谢你的帮助 !

安托万

相关内容