Je sais que les valeurs de gentillesse sont héritées de la valeur de gentillesse du processus parent, mais puis-je changer globalement la valeur de gentillesse par défaut pour un utilisateur particulier (moi-même).
Dans ce cas, j'ai un petit serveur de commodité à l'esprit, qui est exclusivement accessible via ssh
. Donc, je pense que je pourrais changer mon shell par défaut de /bin/bash
à /etc/bash5
tout /etc/bash5
est ce script:
#!/bin/sh
nice -n 5 /bin/bash
#file privileges: root:root 755
Cela me semble être un terrible piratage et sujet à des erreurs. Il doit y avoir un meilleur moyen.
Je suis principalement intéressé par les solutions générales, qui s'appliqueraient également à un système de bureau / ordinateur portable.
Edit: j'ai essayé la limits.conf
modification suggérée , mais cela ne fonctionne pas comme prévu:
root@server# addgroup nice
root@server# adduser myself nice
root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf
Ensuite, depuis ma machine cliente, je dis
myself@client$ ssh server
myself@server$ sleep 1h &
myself@server$ htop
Maintenant, le sleep
processus a une valeur de gentillesse initiale de0
, mais si je change la valeur avec F8
à 19 et que j'essaye de la réduire à nouveau avec F7
elle s'arrête à5
.
Edit2: Solution
Au lieu d'utiliser l' nice
élément dans limits.conf
, vous devez en fait l'utiliser priority
même s'il est contre-intuitif.
@nice soft priority 5
renice -n 5
dans votre~/.profile
?bash5
approche, je vous donne ceci. Mais ça casse quand je disssh myserver -- somecommand
non?limits.conf
. À quoi sert votre sortieps -o pid,nice,cmd
?nice
.Réponses:
Vous pouvez définir la priorité d'un utilisateur particulier dans le
/etc/security/limits.conf
fichier.De cette façon, vous pouvez définir une limite stricte ou souple pour un utilisateur particulier. Ainsi, tous les processus que cet utilisateur racine démarrera auront 5 comme valeur de priorité par défaut.
Selon la page Wikipedia :
Voici l'instantané qui montre que la procédure ci-dessus fonctionne:
Ceci est un instantané du
limits.conf
fichier qui montre une ligne que j'ai enfin ajoutée commeAprès avoir changé cela, j'ai commencé une session ssh en utilisant la commande
ssh root@localhost
Cette capture d'écran montre les deux dernières lignes, ce qui montre la valeur intéressante des deux derniers processus
-bash
etsshd: root@pts/3
être 15.Éditer
Voici l'instantané qui montre que vous pouvez augmenter et diminuer la finesse d'un processus
Modifier 2:
Voici le snapshort qui montre que même un utilisateur normal peut changer la valeur de gentillesse.
la source
A niceness of −20 is the highest priority and 19 or 20 is the lowest priority
. Alors d' abord u doivent comprendre que la priorité et niceness sont same..And Je veux clair que ce sont ,hard and soft limits
mais pas comme sonhard priority
etsoft niceness
..Il semble que vous puissiez définir une priorité par défaut pour un utilisateur dans
limits.conf
, avec une ligne comme:Voir man limits.conf .
la source
@nice soft nice 5
maisssh
ing dans la machine et l' exécution dessleep 1h
spectacles comme ayant niceness0
danshtop
. Un indice pourquoi le paramètre n'a pas été accepté? Je suis sur Debian Squeeze.@nice
dans le commentaire ci-dessus .. il devrait être celui de l'utilisateur de la machine linux ur.limits.conf
fichier?