web-dev-qa-db-fra.com

Exécuter une partie d'une commande avec sudo

Je veux créer un raccourci clavier Ctrl+Alt+Delete sur mon PC Ubuntu. Il devrait ouvrir htop, mais je veux une priorité maximale pour cela. J'utilise cette commande.

xterm -fullscreen -fa 'Monospace' -fs 13 -e htop

Cela fonctionne bien, mais lorsque j'ajoute la priorité, il a besoin des autorisations root

$ Nice -n -20 xterm -fullscreen -fa 'Monospace' -fs 13 -e htop
Nice: cannot set niceness: Permission denied

Lorsque j'utilise Sudo, cela fonctionne, mais il exécute toute la commande en tant que root. Comment puis-je exécuter uniquement Nice avec Sudo? Ce serait idéal s'il ne demandait pas de mot de passe.

1
FK-VH

Vous pouvez utiliser Nice sur les PID existants avec renice

Alors lancez le terminal comme d'habitude

$ Sudo renice -n -20 -p HTOP_PID

Si vous utilisez différents shells/fenêtres pour cela, vous pouvez trouver le pid ps -A | grep htop il existe de nombreuses façons d'extraire le PID de la sortie par programme, ce qui permettrait aux scripts de gérer cela.

Sinon, vous pouvez, comme suggéré dans un commentaire, exécuter

Sudo Nice -n -20 su USER htop au lieu de simple htop

1
crasic