如何挂起SIGTSTOP上的node.js进程
我正在构build一个node.js
中的小工具,它需要监听按键来执行一些function。
为此我使用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来暂停进程,但我不知道执行什么代码来暂停进程。
我看到两个可能的解决scheme,但我不知道如何实现它们中的任何一个:
- 只听'正常'按键,让节点处理特殊的button,如ctrl + C和ctrl + Z ,所以它可以只是做它的默认行为。
- 知道执行什么代码来模拟节点收到
SIGSTOP
时默认的挂起行为。
你要…
process.kill(process.pid, 'SIGSTOP');