我是一名嵌入式电子工程师,在两个月的时间里,我一直在为我的一个客户使用基于 Debian 的发行版进行开发。
我实际上正在开发一个处理操作系统和 4G 调制解调器之间的通信和连接的项目。调制解调器由 AT 命令管理,操作系统连接主要由ping
和curl
命令管理。
python 脚本到目前为止运行良好,并且已经测试了大约 2 周。我对此很满意,现在,我正处于脚本自动化阶段。
我尝试使用 systemd 和老式方法(init.d)在启动时启动我的脚本。两者都正确启动了脚本,但我的ping
和curl
命令的输出出现问题。
使用 AT 命令初始化调制解调器后,我将编写nmcli device connect
来自 NetworkManager 包的命令脚本,以从网络获取 IP,然后可以使用ping
和与网络进行交互curl
。
当作为 systemd 服务启动或在 init.d 的帮助下启动时,命令的输出失败。我无法 ping 主机,curl 结果是000
。
尽管如此,在查看网络管理器状态时,仍然存在有效的设置,包括:
- IP地址
- DNS服务器
- 默认网关/路由
但即使在脚本之外,使用ping
和curl
命令也会出现与前面描述的相同的失败。
在寻找解决方案时,我发现网络管理器正在使用 DBUS 会话来使服务正常工作,并且使用启动时启动的脚本来实现此类包似乎很复杂。
我有点卡住了,我想知道是否有人有进一步排除故障的建议?
我已经将网络管理器日志记录设置为调试,但没有任何相关信息。
非常感谢你的帮助 !
安托万