触发节点js文件
问题描述:
我有一个通过node.js运行的JS文件,所以通常我打开一个终端窗口并输入类似node myfile.js
之类的东西,它运行并整天运行;乐趣。触发节点js文件
然后,当我想重新启动它时,我碰到了control-c,然后它就退出了。然后我可以再次运行该命令。
现在我想要做的是能够通过网页做到这一点,以便我的用户可以运行特定的JS文件,并且能够“重启”它们。
这个所以两个问题:
- 是否有可能,如果是这样我怎么开始?
- 它是否安全?如果不是,它可以安全吗?
基于swatkins响应
我想这并没有什么
$output = exec("node -v");
echo $output;
然后我想我的本地计算机上,它好工作怎么办?
也是我仍不能确定安全性和停止正在运行的脚本
答
的能力,假设你在基于Unix的操作系统:
您可以通过EXEC运行shell命令()功能:
// in php file
// to start the script
exec("node myscript.js &", $output);
$output
成为输出的每一行的数组,所以你可以看到进程id是什么。然后你将使用该进程ID来终止脚本:
exec("kill " . $processid);
答
我会避免与shell的任何直接交互。或许,这将是最安全的,解决这个问题是这样的:
- 实现一些整体的“服务” -script,即推出用户节点的应用程序,并保持它运行(类似于https://github.com/isaacs/node-supervisor)
- 使它,因此它会自动重新启动相关文件或数据库条目的更改
- 用户触发重新引导时,将标志(timestamp?)添加到由reboot-script监视的数据库条目或文件。然后它将重新启动node.js-app /脚本。
+3
为什么你不会有shell交互?接受的答案有什么问题? – 2012-10-27 20:50:33
不,应该将'$ output'作为exec函数的第二个参数传递:'exec(“node -v”,$ output); print_r($ output);' – swatkins 2011-12-23 22:07:49