让程序从挂起唤醒后捕获信号吗?

让程序从挂起唤醒后捕获信号吗?

我正在运行一个程序(具体来说奥斯卡姆) 与 USB 端口上的串行读取器交互。但是,分配给 USB 设备的 tty 设备文件有所不同,尤其是在系统从挂起状态唤醒时会发生变化。

我创建了一个 udev 规则,以便为串行读取器分配一致的 tty 设备符号链接。这很有效,我现在可以始终以相同的名称访问它。这允许我在配置文件中包含符号链接名称而不是实际设备名称,这样我就不必每次重新插入时都更改它。

但是,程序似乎在加载其配置时解决了这个问题,即符号链接实际设备 tty。这意味着,只要程序正在运行,它就不会在尝试访问设备时重新解析别名。

现在这是我的问题;当我将计算机从挂起状态唤醒时,该程序仍在运行因此不是解决现在改变了符号链接。当我关闭该程序并重新启动它时,它工作正常。

当然,一个可能的解决方案是将这个终止并重新启动程序包含在内/etc/pm/sleep.d/,但这感觉很不安全,我想与上游分享我的修复方法。

我的问题是,当我的系统从挂起状态唤醒,我能捕捉到这个信号吗?然后我会让程序重新解析配置文件中指定的链接。

相关内容