1个不稳定版本

0.1.0 2023年12月29日

#415操作系统 分类中

Apache-2.0 协议

15KB
400

rt-watchdog

Rust的实时用户空间看门狗。目前支持的平台包括x86-64 Linux和AArch64 Linux。

  • 看门狗线程使用SCHED_DEADLINE调度器运行,保证最高的实时优先级。
  • 看门狗线程使用的代码和数据页面被mlock锁定。

如果错过一个滴答,当前进程将被立即终止。

提供了一种选项,在不受支持的平台上回退到简单的非实时实现。

用法

use std::sync::atomic::Ordering;
use std::time::Duration;

let ctx = rt_watchdog::start_watchdog(
  rt_watchdog::Strategy::RealtimeOrFallback,
  Duration::from_millis(100),
);

loop {
  ctx.counter.fetch_add(1, Ordering::SeqCst);
  std::thread::sleep(Duration::from_millis(90));
}

进程必须具有CAP_SYS_NICE能力才能使用截止时间调度器。使用以下命令将能力添加到可执行文件中:

sudo setcap "cap_sys_nice=eip" ./myapp

依赖项

~43KB