gpt4 book ai didi

powershell - 在while循环中监视两个进程时如何知道哪个进程死亡

转载 作者:行者123 更新时间:2023-12-03 00:23:13 24 4
gpt4 key购买 nike

我正在监视服务器上的两个进程。当其中一位去世时,我需要知道那是哪一位。

有没有比我到目前为止更好的方法来检查这一点?到目前为止,如果没有if / elseif,有没有办法做到这一点?

while ((ps proc1 -ov websrv).Responding -and (ps proc2 -ov connec).Responding) 
{ sleep -m 100 }

$pmsname = if (!$websrv.Responding -and !$connec.Responding) { "beide" }
elseif (!$websrv.Responding -and $connec.Responding) { "websrv" }
elseif ($websrv.Responding -and !$connec.Responding) { "connec" }

最佳答案

您可以执行以下操作:

$status = [int]$websrv.Responding + [int]$connec.Responding * 2

$pmsname = switch ($status) {
0 { 'keiner' }
1 { 'websrv' }
2 { 'connec' }
3 { 'beide' }
default { throw "unrecognized status: $status" }
}

如果进程正在响应,则将 Responding属性的值转换为整数将为您提供一个值,如果没有响应,则为0。通过将该数字乘以2用于第二个进程,可以使两个进程的“响应”状态彼此区分,以便可以添加值并使用 switch 语句确定总体状态。

关于powershell - 在while循环中监视两个进程时如何知道哪个进程死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44670074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com