系统相关
首页 > 系统相关> > 在linux中编写一个支持挂起的程序

在linux中编写一个支持挂起的程序

作者:互联网

依赖于物理时间的程序,例如jackd及其客户端,在Linux中软件暂停笔记本电脑时效果不佳.我想修复一个客户端,它会在软件暂停和恢复重新连接之前让它断开连接,从而开始发出大量的“计时错误”.这可以从客户端完成,而不需要系统配置吗?我知道我可以通过编辑系统脚本来杀死程序,但linux中是否有一个接口可以直接等待挂起事件,而且没有root权限?您是否了解依赖于物理时间但正确处理暂停的程序?

解决方法:

如果程序取决于物理时间,则必须定期检查时钟.除非这是在具有用于实时保证的内核补丁的Linux版本上运行的实时程序,否则调度程序可以停止执行任意长度的过程.一个过程也可以通过STOP信号停止(它可以通过在发送的CONT信号上放置一个处理程序以恢复它来知道这一点).

如果软件只需要知道已经过了很长时间,它就可以放一个计时器来唤醒它.但是,您提供的示例需要了解更多:例如,它需要了解网络配置更改.对于这样的程序,挂钩到系统挂起/恢复事件提供的信息不仅仅是检测时间跳过.

挂钩系统挂起/恢复事件需要root权限,或在具有D-Bus访问权限的会话中运行. (我不知道您需要订阅哪些D-Bus活动.)

挂钩到系统挂起/恢复事件的优点是,您可以在挂起时运行代码,而不仅仅是在恢复时.

标签:power-management,linux
来源: https://codeday.me/bug/20190812/1642893.html