Пкилл гарантирует

Может ли pkill гарантировать, что следующая ситуация никогда не произойдет:

  1. Я использую pkill -f "abc"

  2. pkill находит процесс по имени и запоминает pid

  3. процесс заканчивается

  4. Linux запускает новый процесс с тем же pid

  5. pkill убивает процесс, начатый на шаге 4

1 ответ

Пидс обертывают и в конце концов снова используют. Однако pids, назначенные недавно запущенным процессам, вскоре не будут использоваться повторно. так что на практике проблема, о которой вы беспокоитесь, никогда не возникает. Это теоретически возможно, насколько я могу судить. Однако это будет означать, что

  • pkill работал достаточно медленно, чтобы можно было выделить целую кучу новых идентификаторов процессов между поиском процесса и его уничтожением
  • остальная часть системы работала достаточно быстро, чтобы создать все эти процессы и добраться до точки, где недавно использованный pid был освобожден.
  • Как указано в комментариях, либо вы являетесь пользователем root, либо процесс запущен от имени того же пользователя

Возможно, есть какой-то способ атаковать pkill, поэтому он такой медленный, но такая атака почти наверняка будет ошибкой ядра. Я никогда не был в ситуации, когда беспокойство об этой проблеме было правильным дизайнерским решением.

Другие вопросы по тегам