Выполнить команду после завершения одного процесса (по pid) - PullRequest
0 голосов
/ 04 ноября 2011

Мне нужно проверить, завершен ли процесс скриптом оболочки (linux и windows).То, что я знаю, это идентификатор процесса.После завершения процесса оболочка будет вызывать другие команды.Может кто-нибудь сказать мне, как написать оболочку?

Ответы [ 3 ]

2 голосов
/ 04 ноября 2011

В Linux вы можете использовать ps -p $ PID для проверки процесса, так что вы можете написать цикл while, который проверяет, например, ps -p $PID | wc -l (это подсчитывает строки, если процесс завершится, вывод приведет к меньшему количеству строк),Вы можете разорвать цикл while при этом условии, и тогда весь другой код будет выполнен.Я не могу написать фрагмент, потому что в данный момент у меня нет доступа к оболочке.

1 голос
/ 04 ноября 2011

Если я не ошибаюсь ... Я думаю, вы пытаетесь проверить, завершился ли процесс или нет.Если да, вы можете сделать это, например,

Linux:

ps -ef|grep pid|grep -v grep

Windows:

tasklist /FI PID eq "PID Value"
0 голосов
/ 15 февраля 2017

Если вам нужно использовать его на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...