Я только что установил Garuda и получаю сообщение об ошибке при обновлении

Процесс может установить свои собственные PGID и SID с помощью системных вызовов setpgidsetsid. Целевая группа/сеанс не может быть выбрана произвольно:setpgidможет только перейти к другой группе процессов в том же сеансе или создать новую группу процессов, PGID которой равен PID; setsidможет переместить процесс только в его собственный сеанс, сделав SID равным PID.

Эти вызовы зарезервированы для самого процесса :процесс не может изменить PGID или SID другого процесса, за одним исключением :процесс может изменить PGID своих дочерних процессов, если они все еще используют исходный образ процесса (т.е. они не вызывали execveдля запуска другой программы ).

Некоторые системы могут допускать другое поведение, но я не думаю, что какая-либо современная система Unix принципиально отклоняется.

Можно косвенно изменить PGID или SID процесса, используя отладчик, чтобы заставить процесс вызывать системный вызов setpgidили setsid(черезptrace). Поскольку для этого требуется разрешение ptrace, это должно быть выполнено из другого процесса, работающего от имени пользователя root или того же пользователя, и не должно быть никаких ограничений на отладку (многие современные системы Linux требуют, чтобы отладчик был предком отлаживаемой программы. ).

PID процесса никогда не меняется. PPID процесса может измениться только один раз и только по одной причине :когда родитель умирает, PPID меняется с PID родителя на 1 (процесс принимается init).

Обратите внимание, что в некоторых системах процесс может иметь разные значения PID (и, следовательно, также PPID/PGID/SID, поскольку все они начинаются как PID некоторого процесса ), в зависимости от того, как вы на это смотрите. Например, в пространствах имен Linux у каждого процесса может быть свой PID в каждом пространстве имен, где он виден.

1
21.06.2021, 16:32
0 ответов

Теги

Похожие вопросы