用例:
我正在编写具有许多功能的节点的CLI。其中两个功能是文件侦听器,因此它们可以无限期运行,直到将其关闭。例如,我有一个命令[fargo],它执行一个小任务然后完成,但是有另一个函数[contain],它监听文件更改并阻止正在运行的终端。我希望用户能够呼叫[包含],但不会失去对终端的访问权限。我能够创建一个与父进程完全独立的子进程,但是无法使用该命令打开新的终端,尤其是在MacOS上。我非常希望用户能够通过关闭新终端来退出循环命令,而不是在系统的后台运行循环命令。
const subprocess = spawn('contain',['montreal'], {
detached: true,
stdio: 'ignore',
shell: '/bin/bash' //Ive tried leaving this blank, setting it to true, and using 3rd party modules
})
因此,这可以正确运行contain montreal命令,而不会阻止父级,但是我似乎无法打开MacOS终端。我试图从以前在Stack上的答案中学习,但似乎没有任何效果。如果有跨平台的方式做到这一点,那将是惊人的。我绝对愿意使用第3方模块,但我不想使用像pm2这样的监视器。我也乐于接受其他方法来完成此任务。
谢谢您的帮助