php - 如何使用php的exec函数启动一个nodejs进程
问题描述
我需要通过php远程重启服务器上的nodejs站点。结束这个nodejs进程很容易,但由于生命周期问题我无法启动它。我该怎么办?下面的代码是一个可以通过网络访问来实现查找和结束nodejs的api。
<?php
header('Content-Type: text/plain');
$cmd = 'netstat -aon|findstr "0.0.0.0:8888"';
echo 'C:\Users\Server>'.$cmd."\n";
exec($cmd,$out);
if(!empty($out)){
echo $out[0]."\n";
$pid = explode(" ",$out[0]);
$pid = intval(end($pid));
if($pid>20){
$cmd = 'taskkill /f /pid '.$pid;
echo 'C:\Users\Server>'.$cmd."\n";
exec($cmd,$out);
echo "killed\n";
}
}else{
echo "notfind 8888\n";
}
$cmd = 'cmd /c E:\nodejs\run.bat';
echo 'C:\Users\Server>'.$cmd."\n";
exec($cmd);
解决方案
我写了一个exe用户c#。使用执行功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace run
{
class Program
{
static void Main(string[] args)
{
System.Diagnostics.Process.Start(@"node.exe", @"E:\nodejs\index.js");
}
}
}
推荐阅读
- python-3.x - pyusb 读取操作总是返回 '1'
- sql-server - 如何在 varchar 列中存储字符串以及 Syllabication
- python - 即使正确安装也无法导入 pmdarima
- npm - 捆绑本地 NPM 依赖并发布
- s4sdk - 无法进行发布,因为应用程序总是向我发送标头“x-csrf-token:require”HTTP 403
- c++ - 如何处理字符串?
- python - 我应该在django的哪个地方或APP中存储数据?
- matlab - Simulink 数据类型
- git - 如何共享或链接到 GitHub 企业(大学)帐户存储库?
- ios - 我的自定义 UIButton 不能用于替换 leftBarButtonItem