Czy istnieje niezawodny sposób na zabicie wszystkich procesów danego użytkownika? kill(-1, SIGKILL)
ponieważ ten użytkownik będzie działał, chyba że fałszywy proces tego użytkownika zabije najpierw proces zabijania. Najlepsze, co mogę znaleźć, to przeplatanie się przez tego użytkownika i zabijanie procesów w ten sposób, ale to wydaje się naprawdę zjadliwe i nieefektywne.Zabij wszystkie procesy dla danego użytkownika.
EDYCJA: Aby wyjaśnić, proszę o rozwiązanie kompatybilne z POSIX. Z jakiegoś powodu pomyślałem, że oznaczenie tagu "posix" umieści to w tytule.
Warto zauważyć, że wszystkie rozwiązania tutaj (jak to ma zazwyczaj miejsce w przypadku 'kill') mają [TOCTOU] (https: // CWE .mitre.org/data/definitions/367.html) stan wyścigu: pomiędzy identyfikacją procesów do zabijania i zabijania ich, proces może umrzeć i jego PID może zostać poddany recyklingowi. Mogą też powstać nowe procesy należące do tego użytkownika, nieznane użytkownikowi. – pilcrow