Lưu ý: Giải pháp này chỉ hoạt động với bộ lập lịch cfq, như được giải thích ở đây . Bạn nên kiểm tra cái nào được sử dụng bằng cách phát hành
cat /sys/block/sda/queue/scheduler
và thay đổi nó nếu cần thiết.
Nếu tôi hiểu chính xác, bạn muốn một số ionice
cài đặt được áp dụng mỗi khi bạn bắt đầu một lệnh. Bạn có thể làm theo cách này:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
Lệnh đầu tiên tạo một tệp VirtualBox
có văn bản trích dẫn đơn như nội dung của nó. Điều này sẽ có đường dẫn đầy đủ đến chương trình, bởi vì nếu chỉ xác định VirtualBox
nó có thể hiểu nó là tệp chúng ta vừa tạo và tạo một "vòng lặp".
Lệnh thứ hai làm cho nó có thể thực thi được và thứ ba di chuyển tệp mới này trong một thư mục nằm trước thư mục bin "hệ thống" /usr/bin
, vì vậy tệp mới của chúng tôi được thực thi thay vì ban đầu. Phần "$ @" chứa tất cả các đối số mà lệnh được gọi, vì vậy chúng được chuyển tiếp đến lệnh VirtualBox thực.
Theo câu trả lời ("có") cho câu hỏi Siêu người dùng này, trẻ em có xử lý các ưu tiên ionice từ cha mẹ không? Làm thế nào để bạn kiểm tra mức độ ưu tiên IO của một quy trình đang chạy? , nó là đủ cho ionice
quá trình cha mẹ, như thế này:
ionice -c 3 VirtualBox
Từ ionice
trang man , theo sau các giá trị lớp lập lịch I / O có sẵn:
- 0 cho không
- 1 cho thời gian thực
- 2 cho nỗ lực tốt nhất
- 3 cho không hoạt động (được sử dụng trong ví dụ ở trên)
Một số hoặc tên lớp có thể được sử dụng.
Ngoài ra, -n level
tùy chọn có thể áp dụng cho các lớp thời gian thực và nỗ lực tốt nhất, với 0-7 là dữ liệu hợp lệ (mức độ ưu tiên).