4

Я готовлюсь к экзамену и совсем не уверен, что произойдет, если я использую kill с pid < -1 .

Могу ли я завершить процессы группы, в которую я не включен?

Какие процессы затронуты?

1 ответ1

3

Из справочной страницы, в информационных целях:

Если pid меньше -1, то sig отправляется каждому процессу в группе процессов с идентификатором -pid.

Ответ дается в общем, но также относится к этому случаю:

Чтобы процесс имел разрешение на отправку сигнала, он должен быть либо привилегированным (в Linux: иметь возможность CAP_KILL), либо реальный или эффективный идентификатор пользователя процесса отправки должен совпадать с реальным или сохраненным установленным идентификатором пользователя-цели процесс.

В нашем случае это означает, что вызывающему процессу либо нужно предоставить возможность CAP_KILL, либо uid вызывающего процесса должен быть таким же, как (set)uid каждого процесса, который вы хотите завершить.

Отправка kill -56 попытается завершить каждый процесс из группы 56, но если у него другой идентификатор пользователя, отличный от вызывающего процесса, он не будет завершен.

Допустим, у вас есть идентификаторы процессов 9000, 9010 и 9020 в группе 56, kill -56 - это то же самое, что kill 9000 9010 9020 . И если у вас нет такого же uid как, скажем, pid 9020 , вы не сможете его прекратить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .