Changer la gentillesse (priorité) d'un processus en cours d'exécution

80

Est-il possible de définir un nouveau niceniveau de processus en cours avec un identifiant connu?

Cette opération nécessite-t-elle un accès root ou est-elle simplement propriétaire du processus?

Adam Matan
la source

Réponses:

76

Terminal

Si vous êtes à un terminal, vous pouvez utiliser renice

renice [-n] priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]

Un exemple simple serait

renice 8 31043
31043: old priority 5, new priority 8

Vous pouvez également passer des indicateurs difficiles, mais cela suit cet ordre (vous devez d'abord passer la priorité, puis le pid - si vous modifiez l'ordre, le message d'utilisation s'affiche)

renice -n 5 -p 31043
31043: old priority 8, new priority 5

Les priorités de travail sur une échelle de -20à 19- Plus le nombre est élevé, plus il de priorité sur le système.

Si vous possédez le processus, vous n'aurez pas besoin de root. Toutefois, si le processus appartient à un autre utilisateur ou si vous prévoyez de changer de groupe / d'utilisateur, le processus racine (via sudo) sera requis.

Marco Ceppi
la source
11
Vous ne pouvez pas diminuer la gentillesse en tant qu'utilisateur. :)
htorque
5
Comme @htorque le dit, un non- rootutilisateur ne peut qu'améliorer la gentillesse - il ne peut pas diminuer la gentillesse, pas même à un niveau de gentillesse antérieur du processus, ni même à un niveau de gentillesse antérieur dont ils étaient eux-mêmes responsables renice. Je recommande de modifier cette réponse pour intégrer cette information.
Eliah Kagan
2
Y at-il des inconvénients à faire de la priorité de processus -20?
James Watkins
2
@ JamesWatkins Vous pourriez caler votre ordinateur
DarthRubik
33

Interface graphique

  • Alt+ F2et le typesudo gnome-system-monitor

Avant 11.04: Système> Administration> Moniteur système. Choisissez les processus.
Dans 11.04: Alt+ Aet rechercher system monitor.

Les identifiants sont affichés dans l'image ici:

entrez la description de l'image ici

Et bien n’a pas besoin de sudo pour augmenter la gentillesse si vous possédez la tâche. C'est le cas si vous devez diminuer la gentillesse.

Rinzwind
la source
10

Lancer une commande avec nice prio

nice -n 19 your_command

Processus de Renice

renice 19 $(pidof your_command_name_like_for_ex_ffmpeg)

19

entre -20 et 19

19 est la priorité la plus basse

Philippe Gachoud
la source
8

L'utilisation de "renice" dans le terminal est la suivante:

Usage:
 renice [-n] <priority> [-p] <pid> [<pid>  ...]
 renice [-n] <priority> [-g] <pgrp> [<pgrp> ...]
 renice [-n] <priority> [-u] <user> [<user> ...]

Options:
 -g, --pgrp <id>        interpret as process group ID
 -h, --help             print help
 -n, --priority <num>   set the nice increment value
 -p, --pid <id>         force to be interpreted as process ID
 -u, --user <name|id>   interpret as username or user ID
 -v, --version          print version

L'utilisation de "sudo" avant la commande "renice" élève l'utilisateur au niveau racine et un mot de passe administrateur / racine sera requis.

Ainsi , par exemple si vous voulez élever processus avec PID (ID de processus) 2606 de normal priorité à haute priorité, vous tapez dans le terminal comme suit:

sudo renice -n -5 -p 2606
utilisateur141344
la source
3

Vous pouvez également renommer un processus dans top.

1) Début top

$ top

2) appuyez sur r. Vous serez invité à saisir l'ID de processus (PID) du processus que vous souhaitez utiliser. Le PID par défaut est le premier processus (celui qui consomme le plus de ressources). Confirmez avec Entrée. Définissez la nouvelle valeur de courtoisie de -20 (priorité plus élevée) à +19 (priorité plus faible).

entrez la description de l'image ici

Timothy Pulliam
la source