完成一个进程(通过pid)后运行命令

时间:2011-11-04 09:15:05

标签: windows linux

我需要通过shell脚本(linux和windows)检查进程是否完成。我所知道的是进程ID。一旦完成该过程,shell将调用其他命令。有人能告诉我如何编写shell吗?

3 个答案:

答案 0 :(得分:2)

在Linux上,您可以使用ps -p $ PID来检查进程,因此您可以编写一个while循环来检查例如ps -p $PID | wc -l(这会对行进行计数,如果过程完成,则输出将导致较少的行)。你可以在这种情况下打破while循环,然后执行所有其他代码。我不能写一个片段,因为我目前无法访问shell。

答案 1 :(得分:1)

如果我没有错......我认为您正在尝试检查该过程是否已完成。如果是,您可以这样做

Linux的:

ps -ef|grep pid|grep -v grep

视窗:

tasklist /FI PID eq "PID Value"

答案 2 :(得分:0)

如果您需要在Java或其他语言中使用它,您可以使用以下命令字符串之一。

Windows:

cmd /c tasklist /FI "PID eq  pidStr"

Linux:

ps -p  pidStr

Windows示例:

C:\Windows\System32>cmd /c tasklist /FI "PID eq 5565"
INFO: No tasks are running which match the specified criteria.

C:\Windows\System32>cmd /c tasklist /FI "PID eq 11144"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
bash.exe                     11144 Console                    1      4,808 K