Uwaga: To rozwiązanie działa tylko z programem planującym cfq, jak wyjaśniono tutaj . Powinieneś sprawdzić, który z nich jest wystawiony
cat /sys/block/sda/queue/scheduler
i zmień to w razie potrzeby.
Jeśli dobrze zrozumiałem, chcesz, aby jakieś ionice
ustawienia były stosowane przy każdym uruchomieniu polecenia. Możesz to zrobić w ten sposób:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
Pierwsze polecenie tworzy plik VirtualBox
z tekstem w cudzysłowie jako jego zawartością. Powinno to mieć pełną ścieżkę do programu, ponieważ jeśli tylko zostanie określony VirtualBox
, może zinterpretować go jako właśnie utworzony plik i utworzyć „pętlę”.
Drugie polecenie powoduje, że jest on wykonywalny, a trzeci przenosi ten nowy plik do folderu, który znajduje się przed folderem bin „systemowego” /usr/bin
, więc nasz nowy plik zostanie wykonany zamiast oryginalnego. Część „$ @” zawiera wszystkie argumenty, z którymi wywołano polecenie, więc są one przekazywane do prawdziwego polecenia VirtualBox.
Zgodnie z odpowiedzią („tak”) na to pytanie superużytkownika Czy procesy dzieci dziedziczą priorytety jonizacji od rodziców? Jak sprawdzasz priorytet IO uruchomionego procesu? , powinno wystarczyć ionice
procesowi nadrzędnemu, tak jak to:
ionice -c 3 VirtualBox
Na ionice
stronie podręcznika dostępne są następujące wartości klas planowania we / wy:
- 0 za brak
- 1 w czasie rzeczywistym
- 2 dla najlepszego wysiłku
- 3 dla bezczynności (używane w powyższym przykładzie)
Można użyć numeru lub nazwy klasy.
Ponadto, -n level
opcja ma zastosowanie do klas czasu rzeczywistego i najlepszych starań, z 0-7 jako prawidłowymi danymi (poziomy priorytetu).