Em um servidor compartilhado, eu gostaria de ter alguns usuários de prioridade muito baixa, para que, sempre que um outro usuário (também sem privilégios de root) precise dos recursos, ele possa matar qualquer um dos processos dos usuários de baixa prioridade.
É possível permitir algo assim?
users
not-root-user
privileges
Aslan986
fonte
fonte
Respostas:
Conceda aos outros usuários permissão para eliminar os processos como o usuário de baixa prioridade por meio de
Um usuário pode sinalizar apenas seus próprios processos, a menos que tenha privilégios de root. O uso de
sudo -u
um usuário com a configuração correta nosudoers
arquivo pode assumir a identidade do usuário de baixa prioridade e interromper o processo.Por exemplo:
Isso permitiria que todos os usuários do grupo
killers
executassem/bin/kill
comolowpriouser
.Veja também o
sudoers
manual do seu sistema.Em um sistema OpenBSD, o mesmo pode ser feito através do
doas
utilitário nativo com uma configuração comoEntão
Veja os manuais para
doas
edoas.conf
.fonte
kill
. Observe também que sugiro usar um grupo de usuários (killers
), nem todos os usuários.kill -HUP
, não apenaskill -TERM
.lowpriouser
. Se você deseja restringir os sinaisTERM
, escreva um script de shell wrapper/bin/kill
e permita que as pessoas o usem em vez de/bin/kill
.%killers ALL = (lowpriouser) /bin/kill -(9, 15) [0-9 ]*
Você não deve matar os processos, se eles forem de baixa prioridade, eles consumirão poucos recursos.
Para realmente torná-los de baixa prioridade, altere sua prioridade manualmente ou use um daemon como
autonice
eu escrevi para o DEC OSF / 1 há muitos anos (c. 1994) que procura trabalhos de longa duração e reduz progressivamente sua prioridade quanto mais tempo eles executam .EDITAR Existe um pacote chamado
and
que oferece essa funcionalidade para os Unices modernos.fonte
Acho que você abordou a questão do ângulo errado: se um processo é executado em configurações de baixa prioridade (CPU, E / S), não deve afetar muito outros processos, porque não será agendado para execução. Quanto ao uso da memória, se a memória principal estiver fraca e o processo não estiver programado para ser executado por um longo tempo (por exemplo, devido a restrições de CPU e E / S), suas páginas "limpas" serão descartadas e as páginas "sujas" serão confirmadas ou trocados e não afetam mais o desempenho de outros processos.
Conclusão: com a definição correta de prioridades e espaço de troca suficiente, seria desnecessário eliminar trabalhos de baixa prioridade para criar espaço para tarefas mais importantes; em vez disso, o kernel cuidará de colocar o primeiro a dormir em favor do último.
fonte