Примечание. Это решение работает только с планировщиком cfq, как описано здесь . Вы должны проверить, какой из них используется путем выдачи
cat /sys/block/sda/queue/scheduler
и измените его при необходимости.
Если я правильно понял, вы хотите, чтобы некоторые ionice
настройки применялись при каждом запуске команды. Вы можете сделать это следующим образом:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
Первая команда создает файл VirtualBox
с текстом в одинарных кавычках. У этого должен быть полный путь к программе, потому что, если указать только один, VirtualBox
он может интерпретировать его как файл, который мы только что создали, и создать «цикл».
Вторая команда делает его исполняемым, а третья перемещает этот новый файл в папку, которая находится перед папкой «system» bin /usr/bin
, так что наш новый файл исполняется вместо оригинала. Часть «$ @» содержит все аргументы, с которыми была вызвана команда, поэтому они перенаправляются в настоящую команду VirtualBox.
Согласно ответу («да») на этот вопрос суперпользователя. Наследственные процессы детей наследуют приоритеты своих родителей? Как вы проверяете приоритет ввода-вывода запущенного процесса? , должно быть достаточно для ionice
родительского процесса, например:
ionice -c 3 VirtualBox
На ionice
странице man доступны следующие значения класса планирования ввода / вывода:
- 0 ни для кого
- 1 для реального времени
- 2 за лучшее
- 3 для простоя (используется в примере выше)
Можно использовать номер или имя класса.
Кроме того, -n level
опция применима для классов реального времени и классов с максимальным усилием, с 0-7 в качестве допустимых данных (уровней приоритета).