Возможно ли остановить повторное использование PID?Bash: Можно ли остановить PID от повторного использования?
Например, если я бегу на работу myjob
в фоновом режиме с myjob &
и получить PID с помощью PID=$!
, можно предотвратить система Linux от повторного использования, что PID, пока я не проверил, что PID больше не существует (процесс закончился)?
Другими словами я хочу сделать что-то вроде:
myjob &
PID=$!
do_not_use_this_pid $PID
wait $PID
allow_use_of_this_pid $PID
Причины для желающих сделать это не имеет особого смысла в приведенном выше примере, но рассмотрим запуск нескольких фоновых заданий в серии, а затем ждет для них всех закончить.
Некоторые программисты-чуваки справедливо указывают, что никакие 2 процесса не могут использовать один и тот же PID. Это правильно, но не то, что я прошу здесь. Я прошу о способе предотвращения повторного использования PID после запуска процесса с помощью определенного PID. А затем также метод повторного включения его использования позже, после того как я закончил использовать его, чтобы проверить, закончен ли мой исходный процесс.
Поскольку было просили, вот Прецедент:
- запуск несколько фоновых заданий
- получить PID-фоновых заданий
- предотвратить PID от повторного другим процессом после фона job заканчивается
- проверить для PID «фоновых заданий» - то есть, чтобы обеспечить завершение фоновых заданий
- [обратите внимание, если отключено Повторное использование ПИД-адреса для PID-фона фона, на которые не могли быть PID т использоваться новый процесс, который был запущен после того, как фоновый процесс завершается] *
- повторного включения PID фоновых заданий
- повтор
* Дальнейшее объяснение:
- Предположим, 10 рабочих мест начато
- Работа 5 выходит
- Новый процесс, инициированный другим пользователем, например, они заходят в tty
- Новый процесс имеет тот же PID, что и Job 5!
- Теперь наш скрипт проверяет завершение задания 5, но видит, что PID используется tty!
Ядро уже запрещает это. Ни один из двух процессов не может иметь один и тот же pid. –
@Someprogrammerdude Хорошо, я недостаточно объяснил это, я отредактировал свой вопрос, один секунда – user3728501
Может быть, вы можете добавить прецедент? Расскажите, какую проблему вы пытаетесь решить? Связанные чтения о [проблема XY] (http://xyproblem.info/) –