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

时间:2015-02-15 14:39:16

标签: php node.js macos

我在PHP页面上有以下代码,它为我执行节点命令。

<?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>

这个命令对我来说很好,但是这个过程只是悬挂而不是为我停下来。我想知道我可以通过创建另一个按钮点击以某种方式杀死该过程,或者可以添加一些东西以在一定时间后结束它吗?

2 个答案:

答案 0 :(得分:1)

我不认为为每个客户启动一个服务器是个好主意......如果你同时有100个客户端,你将启动你的server.js 100倍?你有没有想过使用不同的端口?

要回答你的问题:你必须创建一个脚本shell,它启动你的服务器,它可以在一段时间后杀死它。

这里有一个很好的例子来完成你的工作Bash script that kills a child process after a given timeout

答案 1 :(得分:0)

查看此问题以在流程结束时退出Node.js;

How to exit in Node.js

或者您可以使用&#34; forever&#34;手动启动和停止node.js服务器;

forever start DroneNotes/Dronestream/server.js

forever stop DroneNotes/Dronestream/server.js