关于node.js:在mac OS上的php中的.exec()之后杀死一个节点进程

Killing a node process after .exec() in php on mac OS

我在一个PHP页面上有以下代码,它为我执行一个node命令。

1
2
3
4
5
6
7
8
9
10
11
<?php

if (isset($_POST['button'])) { exec('/usr/local/bin/node DroneNotes/Dronestream/server.js'); } ?>
<form method="POST">
<p>

<input type="hidden" name="button" value="1">
<input type="submit" value="Start Video">

</p>
</form>

这个命令对我来说执行得很好,但是这个过程对我来说只是挂起而不是停止。我想知道我是否可以通过创建另一个按钮单击来以某种方式终止这个过程,或者可以在一段时间后添加一些东西来结束它?


我不认为为每个客户机启动服务器是个好主意…如果同时拥有100个客户机,您将启动100次server.js?你想过使用不同的港口吗?< BR>

要回答您的问题:您必须创建一个脚本shell,它会启动您的服务器,并在一段时间后终止它。

这里有一个很好的例子来执行您的作业bash脚本,它在给定的超时之后杀死一个子进程。


检查这个问题,在流程结束时退出node.js;

如何退出node.js

或者可以使用"永远"手动启动和停止node.js服务器;

1
2
3
forever start DroneNotes/Dronestream/server.js

forever stop DroneNotes/Dronestream/server.js