由于一系列历史和合理的原因,我需要通过 ssh 连接以编程方式配置具有全新 Debian 安装的设备。可以将其视为一条生产线,设备刚到达时需要通过脚本在网络上进行配置。作为该配置的一部分,我需要做的事情之一是删除connman
。
如果我做了最明显的事情并apt purge connman
从我的脚本中调用,它会完成 20%,并且 ssh 连接会断开。当我重新启动计算机并重新登录时,一切都很好,一切connman
都消失了,并且网络已按照我想要的方式配置。
但用户体验却有点不尽如人意。以下是我想到的一些解决方法以及它们为何不令人满意的原因:
echo
来自配置脚本的警告,表明清除过程将停止,用户需要等待一段时间,然后重新启动设备。- 这不仅是糟糕的用户体验,还意味着这必须是脚本执行的最后一件事,而且我无法检查错误或报告成功。
- 要求用户插入键盘和显示器,而不是使用 ssh。
- 非常巧妙的修复,但可能并不总是实用。
- 做类似的事情
apt purge connman && reboot
。- 难以提供用户反馈; ssh 需要重新建立(以不同的方式,因为部分配置更改了网络和 ssh 设置);需要一段不可预测的时间。
- 安排在将来的某个时间进行清除。
- 两者都没有,
at
或者crontab
没有@before_reboot
等效的@reboot
时间,或者其他任意时间可能为时已晚,无法报告成功,并且需要自行清理,因此它只会成功触发一次。
- 两者都没有,
- 配置
connman
为不执行任何操作,而不是删除它。- 令人挥之不去的疑问是它确实是惰性的。
那么有没有一种方法可以在connman
不终止活动以太网连接的情况下删除呢?我可以在下次重新启动之前保持连接,或者只是安排在下次关机期间进行清除吗?