Tôi muốn biết bất kỳ lệnh nào tôi có thể chạy để biết thời gian kết thúc của một quá trình.
Tôi đã khởi chạy tiến trình và biết PID của nó nhưng tôi muốn biết liệu có lệnh nào có thể cho tôi biết khi nào nó kết thúc hay không.
Cảm ơn bạn đã giúp đỡ.
Tôi muốn biết bất kỳ lệnh nào tôi có thể chạy để biết thời gian kết thúc của một quá trình.
Tôi đã khởi chạy tiến trình và biết PID của nó nhưng tôi muốn biết liệu có lệnh nào có thể cho tôi biết khi nào nó kết thúc hay không.
Cảm ơn bạn đã giúp đỡ.
Câu trả lời:
Chạy cái này:
while kill -0 <PID>; do sleep 1; done; echo "Process finished at $(date +"%F %T")."
Hoặc bạn có thể tạo một kịch bản bash. wait-for-death.sh:
#!/bin/bash
if ! kill -0 $1; then
echo "Process $1 doesn't exist."
exit 1
fi
while kill -0 $1; do
sleep 1
done
echo "Process $1 finished at $(date +"%F %T")."
Sau đó cấp cho nó quyền thực thi:
chmod +x wait-for-death.sh
và chạy nó qua quy trình 'PID:
./wait-for-death.sh <PID>
while kill -0 <pid>; do ...dễ mang theo hơn - nó cũng sẽ hoạt động trên các hệ thống không phải là Linux. Và không có lý do để sử dụng bash - mã của bạn không sử dụng bất kỳ bashism nào nên /bin/shhoàn toàn ổn ở đây.
kill -0, tôi nghĩ đó là một giải pháp thanh lịch hơn.
Có thể lệnh timephù hợp với nhu cầu của bạn:
time [options] command [arguments...]
Thí dụ:
time /local/usr/bin/myProcess arg1 arg2
Khi quá trình kết thúc timesẽ hiển thị một số thống kê như thời gian thực hiện để hoàn thành quá trình (tính bằng giây tôi nghĩ).
Kiểm tra trang người đàn ông hoặc chỉ cần xem trang người đàn ông trực tuyến này .
timeđây không phải là một lựa chọn.
at(xem trang manman at:). Điều này sẽ xếp hàng nó như một công việc, bạn sẽ được thông báo khi hoàn thành, v.v. Nó rất cơ bản, giống như Cron, nhưng đối với các cảnh quay đơn lẻ.