我在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>
这个命令对我来说很好,但是这个过程只是悬挂而不是为我停下来。我想知道我可以通过创建另一个按钮点击以某种方式杀死该过程,或者可以添加一些东西以在一定时间后结束它吗?
答案 0 :(得分:1)
我不认为为每个客户启动一个服务器是个好主意......如果你同时有100个客户端,你将启动你的server.js 100倍?你有没有想过使用不同的端口?
要回答你的问题:你必须创建一个脚本shell,它启动你的服务器,它可以在一段时间后杀死它。
这里有一个很好的例子来完成你的工作Bash script that kills a child process after a given timeout
答案 1 :(得分:0)
查看此问题以在流程结束时退出Node.js;
或者您可以使用&#34; forever&#34;手动启动和停止node.js服务器;
forever start DroneNotes/Dronestream/server.js
forever stop DroneNotes/Dronestream/server.js