Я готовлюсь к экзамену и совсем не уверен, что произойдет, если я использую kill
с pid < -1
.
Могу ли я завершить процессы группы, в которую я не включен?
Какие процессы затронуты?
Из справочной страницы, в информационных целях:
Если 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
, вы не сможете его прекратить.