Giả sử tôi chạy một lệnh trong một phiên shell chẳng hạn bash -c 'apt-get update && apt-get upgrade'
. 5 phút sau tôi quyết định ra ngoài ăn vặt, và nhận ra tôi đã quên thêm một số hình thức cơ chế thông báo cho dù thoát là thành công hay thất bại.
Chà, làm gì bây giờ? Nếu chỉ tôi có thể truy vấn từ một thiết bị đầu cuối khác trạng thái thoát của lệnh khác đó (hoặc cụ thể là PID đó), thì có lẽ sau tất cả tôi có thể hiển thị một số loại bật lên. Vì vậy, câu hỏi là: làm thế nào tôi có thể truy vấn trạng thái thoát của một quá trình đã chạy từ một thiết bị đầu cuối khác?
Nói cách khác,
GIVEN rằng tôi có một quy trình đang chạy trong thiết bị đầu cuối A VÀ PID của nó được biết đến
KHI tôi thực thi một số lệnh trong terminal B
THEN Tôi sẽ có thể biết nếu quá trình trong thiết bị đầu cuối A kết thúc với trạng thái thoát 0 hoặc trạng thái thoát> 1.
wait
để lấy mã của một quá trình nền trong trình bao hiện tại của mình, sau khi nó kết thúc, nhưng tôi không thể tìm thấy bất cứ điều gì cho phép truy vấn các trình bao khác. Đơn giản chỉ cần theo dõi xem một quy trình có còn chạy hay không và đưa ra cảnh báo một khi nó thoát cũng là chuyện nhỏ, nhưng không tìm ra mã thoát của nó. Cách duy nhất tôi có thể nghĩ là sẽ yêu cầu chuẩn bị vỏ của bạn PROMPT_COMMAND
để lưu mã thoát cuối cùng trong một tempfile hoặc vị trí có thể truy cập tương tự. Đó sẽ là một lựa chọn?