首页 > 解决方案 > 如何使用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);

标签: phpexec

解决方案


我写了一个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");

        }
    }
}

推荐阅读