美文网首页
7.11 处理操作系统信号

7.11 处理操作系统信号

作者: 9e8aeff1c70c | 来源:发表于2021-08-05 14:03 被阅读0次

此程序是不稳定的 Deno 功能。了解有关不稳定特征的更多内容。

概念

  • 使用该标志访问 Deno 中的新功能或不稳定功能。--unstable
  • Deno.signal可用于捕获和监控操作系统信号。
  • 使用 Deno.signaldispose()功能停止监视信号。

异步迭代器示例

您可以使用Deno.ignal()函数来处理操作系统信号:

/**
 * async-iterator-signal.ts
 */
console.log("Press Ctrl-C to trigger a SIGINT signal");
for await (const _ of Deno.signal(Deno.Signal.SIGINT)) {
  console.log("interrupted!");
  Deno.exit();
}

运行:

deno run --unstable async-iterator-signal.ts

基于Promise的示例

Deno.signal()也作为一个Promise工作:

/**
 * promise-signal.ts
 */
console.log("Press Ctrl-C to trigger a SIGINT signal");
await Deno.signal(Deno.Signal.SIGINT);
console.log("interrupted!");
Deno.exit();

运行:

deno run --unstable promise-signal.ts

停止监控信号

如果您想停止监控信号,您可以使用信号对象的方法:dispose()

/**
 * dispose-signal.ts
 */
const sig = Deno.signal(Deno.Signal.SIGINT);
setTimeout(() => {
  sig.dispose();
  console.log("No longer watching SIGINT signal");
}, 5000);

console.log("Watching SIGINT signals");
for await (const _ of sig) {
  console.log("interrupted");
}

运行:

deno run --unstable dispose-signal.ts

当调用sig.dispose()时,上述for-await循环在5秒后退出。

相关文章

  • 7.11 处理操作系统信号

    此程序是不稳定的 Deno 功能。了解有关不稳定特征[https://deno.land/manual@v1.9....

  • Head First C学习之信号、sigaction

    操作系统用新号控制程序 信号是一条短消息,即一个整型值。 当信号到来是,进程必须停止手中一切工作去处理信号。 进程...

  • 内核(驱动)编程中的并发控制

    在为操作系统编写驱动设备时,因为涉及到中断、多任务和多处理器SMP的处理,所以内核提供了诸如原子操作、信号量、完成...

  • 学习笔记(链接)

    socket python用法 操作系统(信号量)

  • 信号处理

    信号处理

  • 信号与信号处理

    两本书 近期连续阅读两本有关如何处理市场“信号”的书,一本是信号-社会契约与地缘政治如何影响世界经济,一本是宽客-...

  • 信号二

    信号的几种状态 抵达:表示一个信号到达,要处理的信号。阻塞:表示当信号到达时使信号阻塞,当解除阻塞时再处理信号,阻...

  • 学习笔记:信号处理

    信号处理是对各种类型的电信号,按照预期目的和要求进行加工过程的统称。对模拟信号的处理称为模拟信号处理,对数字信号的...

  • 信号控制 & expect

    一,信号说明 二,信号处理 捕捉信号并处理 三,hup信号 ---->如何让一个进程脱离当前窗口运行 四, exp...

  • 信号处理的本质思考

    什么是信号处理? 信号处理任务就是从接收端感知的信号中还原出发送端发送的信号,滤掉/抑制不需要的信号(噪声和干扰)...

网友评论

      本文标题:7.11 处理操作系统信号

      本文链接:https://www.haomeiwen.com/subject/rpmrdltx.html