触发节点js文件

我有一个通过node.js运行的JS文件,所以通常我打开一个terminal窗口,键入类似node myfile.js ,它运行,整天运行; 乐趣。

然后,当我想重新启动它,我打控制C,然后退出。 然后我可以再次运行该命令。

现在我想做的是能够通过网页做到这一点,以便我的用户可以运行特定的JS文件,也能够“重新启动”他们。

所以有两个问题:

  1. 有没有可能,如果是的话,我该如何开始?
  2. 安全吗?如果不安全,可以安全吗?

基于swatkins响应

我试了这个,什么都没有

  $output = exec("node -v"); echo $output; 

那么我试图在我的本地机器,它运作良好,给了什么?

另外我还不确定安全性和停止正在运行的脚本的能力

假设你在基于Unix的操作系统上:

你可以通过exec()函数运行shell命令:

 // in php file // to start the script exec("node myscript.js &", $output); 

$output成为每行$output的数组,因此您可以看到进程ID是什么。 那么你将使用该进程ID来杀死脚本:

 exec("kill " . $processid); 

我会避免与shell的任何直接交互。 这可能是最安全的,要这样解决:

  • 实现一些总体的“服务”脚本,启动用户节点应用程序并保持运行(类似https://github.com/isaacs/node-supervisor
  • 创build它,所以它会自动重新启动对相关文件或数据库条目的更改
  • 用户触发重新启动时,将标志(timestamp?)添加到由reboot-script监视的数据库条目或文件。 然后它将重新启动node.js-app /脚本。