如何使用PHP的exec函数启动Node.js进程

时间:2019-04-29 05:44:48

标签: php exec

我需要通过php远程重新启动服务器上的nodejs站点。结束此nodejs流程很容易,但是由于生命周期问题,我无法启动它。我该怎么办? 以下代码是一个api,可以通过网络对其进行访问以实现查找和结束nodejs。

<?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);

1 个答案:

答案 0 :(得分:0)

我写了一个exe用户c#。使用exec函数

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");

        }
    }
}