简洁版本:
>在带有PID的Windows中,我的程序需要确定我的进程是否仍在运行/运行.
在Linux中,我将只使用“ grep pid”,而所有操作都将完成,在Windows中会这样吗?
较长版本:
我正在Windows上制作一个php(7)系统,该系统运行一个蓝牙Java服务器.我的系统通过命令行运行服务器并保存PID:
$command = 'java -jar app\InterfaceBluetooth.jar /k > storage\logs\bluetoothServerToten.txt';
$descriptorspec = array (
0 => array("pipe", "r"),
1 => array("pipe", "w")
);
if(is_resource($prog = proc_open("start /b " . $command, $descriptorspec, $pipes))){
$ppid = proc_get_status($prog)['pid'];
}// IF
else{
// error stuff
exit();
}// ELSE
$output = array_filter(explode(" ", shell_exec("wmic process get parentprocessid,processid | find \"$ppid\"")));
array_pop($output);
$pid = end($output);
因此,此刻进程已启动并正在运行,并且我具有PID.
现在,让用户确定服务器正在运行很重要.在某种程度上,我的系统需要检查这一点,这可以追溯到简短版本.
没关系,php 7的功能,命令行或其他方式,只是使我的系统能够查明它是否正在运行.
解决方法:
如果您只需要ps aux | grep PID,请尝试任务列表/ nh / fi“ pid eq PID”.
标签:cmd,windows,java,php
来源: https://codeday.me/bug/20191118/2029800.html