Use pkill -U UID
ou pkill -u UID
ou nome de usuário em vez de UID. Às vezes, skill -u USERNAME
pode funcionar, outra ferramenta é killall -u USERNAME
.
A habilidade era específica do Linux e agora está desatualizada, e pkill é mais portátil (Linux, Solaris, BSD).
O pkill permite UIDs numéricos e simbólicos, um link eficaz e real >
pkill - ... signal processes based on name and other attributes
-u, --euid euid,... Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used. -U, --uid uid,... Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used.
A página de habilidades do Man diz que é permitido usar apenas o nome de usuário, não o ID do usuário: link
skill, snice ... These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the killall, pkill
-u, --user user The next expression is a username.
O killall não está marcado como desatualizado no Linux, mas também não funciona com o UID numérico; apenas nome de usuário: link
killall - kill processes by name
-u, --user Kill only processes the specified user owns. Command names are optional.
Eu acho que qualquer utilitário usado para encontrar processos no estilo Linux / Solaris / proc (procfs) usará lista completa de processos (fazendo algum readdir de /proc
). Eu acho que eles irão iterar sobre /proc
subpastas digitais e verificar todos os processos encontrados para correspondência.
Para obter uma lista de usuários, use getpwent
(receberá um usuário por chamada).
habilidade (procps & procps-ng) e killall (psmisc) usam ambos getpwnam
chamada da biblioteca para analisar o argumento da opção -u
, e apenas o nome de usuário será analisado. pkill
(procps & procps-ng) usa o atol e o getpwnam para analisar o argumento -u
/ -U
e permitir o especificador de usuário numérico e textual.