Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] kill nhiều PID với theo dõi trạng thái

    kill nhiều PID với theo dõi trạng thái

    Có nhiều tiến trình, mỗi tiến trình một PID, đều bắt đầu RUNNING. Xử lý các lệnh kill:

    kill -<sig> <PID1> <PID2> ... — gửi tín hiệu <sig> (số hiệu hoặc tên có/không SIG) tới các PID liệt kê. Nếu không có -<sig> thì mặc định SIGTERM (15).

    Áp hành động mặc định cho từng PID (như bài mô phỏng kill: Term/Core→TERMINATED, Stop→STOPPED nếu đang RUNNING, Cont→RUNNING nếu đang STOPPED, Ign→giữ nguyên; tín hiệu tới PID đã TERMINATED bị bỏ qua). PID chưa từng xuất hiện coi như mới (RUNNING) khi nhận tín hiệu đầu tiên.

    Sau khi xử lý hết, in trạng thái mỗi PID đã từng nhận tín hiệu, theo thứ tự PID tăng dần: <PID> <STATE>.

    Số hiệu Tên Hành động mặc định
    1 SIGHUP Term
    2 SIGINT Term
    3 SIGQUIT Core
    9 SIGKILL Term
    10 SIGUSR1 Term
    11 SIGSEGV Core
    12 SIGUSR2 Term
    13 SIGPIPE Term
    14 SIGALRM Term
    15 SIGTERM Term
    17 SIGCHLD Ign
    18 SIGCONT Cont
    19 SIGSTOP Stop
    20 SIGTSTP Stop

    Ví dụ

    Xem test mẫu.

    • Định dạng đầu vào:

      Nhiều dòng lệnh kill ....

    • Ràng buộc đầu vào:

      Số lệnh ≤ 1000. PID là số nguyên dương ≤ 10^6.

    • Định dạng đầu ra:

      Mỗi PID một dòng <PID> <STATE>, sắp theo PID tăng dần.

    Ví dụ:

    Đầu vào:

    kill -STOP 100 200
    kill -CONT 100
    kill -9 200
    

    Đầu ra:

    100 RUNNING
    200 TERMINATED

    Giải thích:

    100: STOP→STOPPED rồi CONT→RUNNING. 200: STOP→STOPPED rồi SIGKILL→TERMINATED.

    Đang tải editor...