Node.js 如何停止bash脚本中的上一个命令?
我试图构建一个bash脚本,在web服务器上运行单元测试 我希望运行一个简单的bash脚本,该脚本可以(例如)在一个makefile中执行以下操作:Node.js 如何停止bash脚本中的上一个命令?,node.js,bash,Node.js,Bash,我试图构建一个bash脚本,在web服务器上运行单元测试 我希望运行一个简单的bash脚本,该脚本可以(例如)在一个makefile中执行以下操作: 启动web服务器 运行单元测试 停止web服务器 假设web服务器是为NodeJS编写的,下面是它的外观: npm start & sleep 5 npm test 这种方法的问题是web服务器将继续运行。如何在npm测试阶段后停止它?上次启动的后台进程的PID存储在$!,因此,在启动npm后将其拾取,并在需要时将其杀死: npm sta
npm start &
sleep 5
npm test
这种方法的问题是web服务器将继续运行。如何在
npm测试
阶段后停止它?上次启动的后台进程的PID存储在$!,因此,在启动npm后将其拾取,并在需要时将其杀死:
npm start &
npm_pid=$!
...
kill $npm_pid
上次启动的后台进程的PID存储在$!,因此,在启动npm后将其拾取,并在需要时将其杀死:
npm start &
npm_pid=$!
...
kill $npm_pid
也许是一个复制品
也许是一个复制品
你可以考虑在屏幕上运行这个过程。
screen -dmS npm npm start #Starts a detached screen named npm, and runs "npm start" inside
稍后,当您需要终止进程时,您可以终止屏幕。当屏幕消失时,它将带上它的子进程
screen -X -S npm quit
你可以考虑在屏幕上运行这个过程。
screen -dmS npm npm start #Starts a detached screen named npm, and runs "npm start" inside
稍后,当您需要终止进程时,您可以终止屏幕。当屏幕消失时,它将带上它的子进程
screen -X -S npm quit
您是否考虑过使用
killall
?这不是一个真正的选项。如果我理解正确,killall
将删除与指定关键字匹配的所有已处理内容。如果这是正确的,试图杀死我的后台进程可能会杀死其他我希望保持不变的进程。如果这不是killall
所做的,请纠正我:)这正是killall
所做的。只要这是npm运行的唯一实例,就可以了。您是否考虑过使用killall
?这不是一个真正的选项。如果我理解正确,killall
将删除与指定关键字匹配的所有已处理内容。如果这是正确的,试图杀死我的后台进程可能会杀死其他我希望保持不变的进程。如果这不是killall
所做的,请纠正我:)这正是killall
所做的。只要这是npm运行的唯一实例,一个就可以了代码>可能吗?@andlrc:哎哟,当然,谢谢。如果我看了标题,我就不会发现其他问题,但我完全理解重复的标志。不管怎样,非常感谢您的回答!:)你想要$代码>可能吗?@andlrc:哎哟,当然,谢谢。如果我看了标题,我就不会发现其他问题,但我完全理解重复的标志。不管怎样,非常感谢您的回答!:)不要c/p StackOverflow的另一个答案,改为标记为重复。不要c/p StackOverflow的另一个答案,改为标记为重复。与我预期的完全不同。我将在屏幕上阅读
。谢谢和我想象的完全不同。我将在屏幕上阅读
。谢谢