【发布时间】:2021-05-14 15:29:58
【问题描述】:
我通过远程服务器上的 ssh (apache) Powershell 脚本从我的 Java EE 应用程序调用,该脚本无法并行运行,因此我需要检查该脚本是否已经在运行并等待直到没有进程并运行该脚本等待脚本。脚本可能会被多次调用,例如。几秒钟内 20 次,所有这些都需要一个一个地运行。
知道如何实现这一点,或者这是否可能?谢谢!
【问题讨论】:
标签: windows powershell shell scripting
我通过远程服务器上的 ssh (apache) Powershell 脚本从我的 Java EE 应用程序调用,该脚本无法并行运行,因此我需要检查该脚本是否已经在运行并等待直到没有进程并运行该脚本等待脚本。脚本可能会被多次调用,例如。几秒钟内 20 次,所有这些都需要一个一个地运行。
知道如何实现这一点,或者这是否可能?谢谢!
【问题讨论】:
标签: windows powershell shell scripting
我在一些脚本中实现这一点的方法是使用锁定文件
$lockFile = "$PSScriptRoot\LOCK"
if (-not (Test-Path $lockFile)) {
New-Item -ItemType File -Path $lockFile | Out-Null
# Do other stuff...
Remove-Item -Path $lockFile -Force
}
你可以修改成这样的吗?
$lockFile = "$PSScriptRoot\LOCK"
while (Test-Path $lockFile)
{
Start-Sleep -Seconds 2
}
New-Item -ItemType File -Path $lockFile | Out-Null
# Do other stuff...
Remove-Item -Path $lockFile -Force
【讨论】: