我有一个通过node.js运行的JS文件,所以通常我会打开一个终端窗口并键入类似node myfile.js
的内容,它会运行并运行一整天;乐趣。
然后,当我想重新启动它时,我点击了control-c并退出了。然后我可以再次运行命令。
现在我想做的是能够通过网页执行此操作,以便我的用户可以运行特定的JS文件,并且还能够“重启”它们。
关于这个的两个问题:
基于swatkins响应
我试过这个并没有得到任何东西
$output = exec("node -v");
echo $output;
然后我尝试使用我的本地机器并且它能够正常工作吗?
我仍然不确定安全性和停止正在运行的脚本的能力
答案 0 :(得分:17)
假设您使用的是基于Unix的操作系统:
您可以通过exec()函数运行shell命令:
// in php file
// to start the script
exec("node myscript.js &", $output);
$output
成为每行输出的数组,因此您可以看到进程ID是什么。然后,您将使用该进程ID来终止脚本:
exec("kill " . $processid);
答案 1 :(得分:3)
我会避免与shell直接交互。以这种方式解决它可能是最安全的: