Скажи, что у меня в руке пид, mypid=$$
Есть ли какая-нибудь команда bash / system, которую я могу использовать для прослушивания выхода этого процесса с данным pid?
Если не существует никакого процесса с mypid, я думаю, что команда должна просто потерпеть неудачу.
bash
shell-script
process
proc
Александр Миллс
источник
источник
wait
в оболочке илиwait()
функции библиотеки C. У AFAIK нет стандартного способа ожидания не дочернего процесса. Также неясно, может ли функция C # сделать это (это зависит от того, что такое «связанный процесс»).Ответы:
Я получил то, что мне было нужно из этого ответа: https://stackoverflow.com/a/41613532/1223975
.. выход из использования
wait <pid>
будет работать только в том случае, если этот pid является дочерним процессом текущего процесса .Однако следующее будет работать для любого процесса:
Дождаться окончания любого процесса
Linux:
Дарвин (требует наличия
$pid
открытых файлов):С таймаутом (секунды)
Linux:
Дарвин (требует наличия
$pid
открытых файлов):источник
Вы можете использовать встроенный bash
wait
:Он использует системный вызов
waitpid()
..источник
bash: wait: pid 47760 is not a child of this shell
... назад к чертежной доске lolОтносительно решения https://stackoverflow.com/a/41613532/1223975, которое разместил Александр Миллс,
Timeout in Seconds
Darwin
это обходной путь для UNIX-подобной ОС, которая не имеет GNUtail
. Он не является специфическим дляDarwin
, но, в зависимости от возраста операционной системы, подобной UNIX, предлагаемая командная строка является более сложной, чем необходимо, и может дать сбой:По крайней мере на одном старом UNIX
lsof
аргумент+r 1m%s
терпит неудачу (даже для суперпользователя):Это
m%s
спецификация выходного формата. Более простой постпроцессор не требует этого. Например, следующая команда ожидает PID 5959 до пяти секунд:В этом примере, если PID 5959 выходит сам по себе до истечения пяти секунд,
${?}
это0
. Если не${?}
возвращается1
через пять секунд.Она также может быть стоит прямо отметить , что в
+r 1
, то1
есть интервал опроса (в секундах), так что он может быть изменен в соответствии с ситуацией.источник