Sur un serveur partagé, j'aimerais avoir des utilisateurs de très faible priorité de sorte que chaque fois qu'un autre utilisateur (également sans privilèges root) a besoin des ressources, il peut tuer n'importe quel processus des utilisateurs de faible priorité.
Est-il possible d'autoriser quelque chose comme ça?
users
not-root-user
privileges
Aslan986
la source
la source
Réponses:
Accordez aux autres utilisateurs la permission de tuer les processus en tant qu'utilisateur de faible priorité via
Un utilisateur peut uniquement signaler ses propres processus, sauf s'il dispose de privilèges root. En utilisant
sudo -u
un utilisateur avec la configuration correcte dans lesudoers
fichier peut supposer l'identité de l'utilisateur de faible priorité et tuer le processus.Par exemple:
Cela permettrait à tous les utilisateurs du groupe
killers
de s'exécuter en/bin/kill
tant quelowpriouser
.Voir également le
sudoers
manuel de votre système.Sur un système OpenBSD, la même chose peut être faite via l'
doas
utilitaire natif avec une configuration commealors
Voir les manuels pour
doas
etdoas.conf
.la source
kill
. Notez également que je suggère d'utiliser un groupe d'utilisateurs (killers
), pas tous les utilisateurs.kill -HUP
, pas seulementkill -TERM
.lowpriouser
. Si vous souhaitez restreindre les signaux àTERM
, écrivez un script shell wrapper autour/bin/kill
et autorisez les gens à l'utiliser à la place de/bin/kill
.%killers ALL = (lowpriouser) /bin/kill -(9, 15) [0-9 ]*
Vous ne devriez pas tuer les processus, s'ils sont de faible priorité, ils consommeront peu de ressources.
Pour leur donner une faible priorité, modifiez leur priorité manuellement ou utilisez un démon comme
autonice
celui que j'ai écrit pour DEC OSF / 1 il y a de nombreuses années (c.1994) qui recherche des travaux de longue durée et réduit progressivement leur priorité plus ils s'exécutent. .MODIFIER il existe un package appelé
and
qui offre cette fonctionnalité pour les Unices modernes.la source
Je pense que vous abordez le problème sous le mauvais angle: si un processus est exécuté avec des paramètres de faible priorité (CPU, E / S), il ne devrait pas affecter beaucoup d'autres processus car il ne sera pas planifié pour s'exécuter. En ce qui concerne l'utilisation de la mémoire, si la mémoire principale est restreinte et que le processus n'a pas été planifié pour s'exécuter depuis longtemps (par exemple en raison de contraintes de processeur et d'E / S), ses pages «propres» sont supprimées et ses pages «sales» sont validées ou échangé et n'affecte plus les performances des autres processus.
Conclusion: avec le bon réglage de priorité et un espace d'échange suffisant, il ne devrait pas être nécessaire de supprimer les travaux de faible priorité pour faire de la «place» pour des tâches plus importantes; à la place, le noyau veillera à endormir les premiers en faveur des seconds.
la source