cuốn sách gpt4 ai đã làm

linux - Cách trì hoãn chạy chương trình cho đến khi sự kiện đĩa giảm bớt

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 01:04:18 hai mươi bốn 4
mua khóa gpt4 Nike

Tôi muốn đưa một số ứng dụng lớn vào tập lệnh khởi động của mình. Vì việc khởi động mỗi cái là một nhiệm vụ nặng nề về I/O nên để tránh tắc nghẽn, tôi muốn trì hoãn việc khởi động cái khác cho đến khi cái đầu tiên được khởi tạo.

Đây là những tập lệnh không hoạt động, thực hiện một số công việc và sau đó tồn tại. Tôi đang nói về các ứng dụng GUI không thoát (như Firefox, Eclipse), vì vậy cách duy nhất để biết ứng dụng đã hoàn thành công việc khởi tạo là (hãy sửa cho tôi nếu tôi sai) kiểm tra I/O của đĩa .

Tôi biết tôi có thể kết hợp một cái gì đó với trên kết hợp đầu ra được phân tích cú pháp hoặc sử dụng vmstat Tốt hơn - nhưng có điều gì đó mách bảo tôi rằng phải có giải pháp đơn giản hơn, như "chờ-io-nhàn rỗiTiện ích ” trả về khi đĩa IO được lấy mẫu trong một khoảng thời gian nhất định (ví dụ: 3 giây) nhỏ hơn ngưỡng nhất định (ví dụ: 10%).

Có ai biết về một tiện ích như vậy?

câu trả lời hay nhất

Dựa trên câu trả lời của Pereal, tôi đã vá một tập lệnh và nó hoạt động. chúng tôi gọi nó chờ-đĩa-không hoạt động. Nhược điểm của phương pháp này là nó đòi hỏi thời gian khởi tạo riêng. Phải mất gấp đôi "thời gian mẫu" để thực thi trong khi lấy mẫu "thời gian mẫu" một cách hiệu quả. Đây là một hạn chế của iostat.

(Ừ, phải là bash chứ không phải sh)

#!/bin/bash

USAGE="Cách sử dụng: `tên cơ sở $0` [-t thời gian mẫu] [-p ngưỡng phần trăm IO của đĩa] thiết bị đĩa"

thời gian=3
phần trăm=10
# Phân tích các tùy chọn dòng lệnh.
while getopts ":t:" OPT;
trường hợp "$OPT" trong
t)
thời gian=$OPTARG
;;
:)
# getopts đưa ra thông báo lỗi
echo "`tên cơ sở $0` phiên bản 0.1"
echo $USAGE >&2
lối ra 1
;;
\?)
# getopts đưa ra thông báo lỗi
echo "`tên cơ sở $0` phiên bản 0.1"
echo $USAGE >&2
lối ra 1
;;
esac
xong
while getopts ":p:" OPT;
trường hợp "$OPT" trong
P)
phần trăm=$OPTARG
;;
:)
;;
\?)
# getopts đưa ra thông báo lỗi
echo "`tên cơ sở $0` phiên bản 0.1"
echo $USAGE >&2
lối ra 1
;;
esac
xong

# Xóa các switch mà chúng tôi đã phân tích ở trên.
shift `expr $OPTIND - 1`

# Chúng ta muốn có ít nhất một đối số không phải tùy chọn.
# Xóa khối này nếu bạn không cần nó.
nếu [ $# -eq 0 ];
# getopts đưa ra thông báo lỗi
echo "`tên cơ sở $0` phiên bản 0.1"
echo $USAGE >&2
lối ra 1
fi

# phần trăm tiếng vang: $percent, thời gian: $time, đĩa: $1

trong khi [[ $(iostat -d -x $time 2 $1 |
sed -n 's/.*[^0-9]\([0-9][0-9]*\),[^,]*$/\1/p' tail -1) > $percent
]]; LÀM
# tiếng vọng chờ đợi
xong

Về linux - cách trì hoãn việc chạy chương trình cho đến khi sự kiện đĩa lắng xuống, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/15631497/

hai mươi bốn 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress