如何在SIGTSTOP上挂起node.js进程

时间:2015-07-16 10:20:35

标签: node.js keypress suspend

我在node.js中建立一个需要听按键来执行某些功能的小工具。

为此,我正在使用keypress库。我知道怎么做 设置关键侦听器并侦听 ctrl + C 组合键以退出进程(使用process.exit()):

import keypress from 'keypress';
const stdin = process.stdin;
keypress(process.stdin);
process.stdin.setRawMode(true);

process.stdin.on('keypress', function(ch, key) {
  if ( key && key.ctrl ) 
    if ( key.name == 'c') {
      console.log('quitting...');
      process.exit();
    } else {
      console.log('suspending...');
      // WHAT TO DO?
    }
  } else if ( ch ) {
    my_functionality(ch);
  }
});

我也在听 ctrl + Z 来暂停这个过程, 但是我不知道要执行什么代码来暂停这个过程。

我看到两种可能的解决方案,但我不知道如何实现其中任何一种:

  • 只听“正常”按键,让节点处理特殊按键 喜欢 ctrl + C ctrl + Z ,所以 它只能做它的默认行为。
  • 知道要执行哪些代码来模拟暂停行为 节点收到SIGSTOP时的默认值。

1 个答案:

答案 0 :(得分:1)

你想......

process.kill(process.pid, 'SIGSTOP');