Fedora Linux: Cách sử dụng stty (hoặc tương đương) để liên kết khóa để nâng cao SIGUSR1 cho ứng dụng?


4

Tôi đang sử dụng FC 14, nhưng đây có lẽ là một câu hỏi khá chung chung về Linux.

Tôi muốn có thể liên kết một khóa trong trình điều khiển thiết bị đầu cuối Linux sẽ gây ra tín hiệu khác SIGINThoặc SIGQUITđược đưa ra cho ứng dụng đang chạy. Tôi không muốn đồng chọn một trong hai. Nếu nó rung chuông cho bạn, hãy suy nghĩ về CTRL/Tkhả năng cũ , chỉ với tín hiệu bị bắt và xử lý bởi ứng dụng chứ không phải HĐH.

Vì đây là để báo cáo trạng thái cho các hoạt động dài hạn, SIGUSR1có vẻ phù hợp. Tuy nhiên, nếu cụ thể nâng cao điều đó từ bàn phím đầu cuối không phải là một tùy chọn, tôi sẽ lấy những gì tôi có thể nhận được. Tôi không muốn thử điều không thể và bắt SIGKILLB-) nhưng tôi muốn có thể tăng tín hiệu khác SIGQUITSIGINTtừ bàn phím đầu cuối.

Kịch bản:

  1. Thiết lập thiết bị đầu cuối để thực hiện việc tăng tín hiệu
  2. Chạy ứng dụng từ shell trong cửa sổ terminal
  3. Đợi cho đến khi nó vào phần chạy dài phức tạp
  4. Nhấn CTRL/whatzitđể tăng tín hiệu
  5. Ứng dụng bắt tín hiệu, thực hiện một số loại báo cáo trạng thái và tiếp tục

Tôi có thể làm điều này mà không gặp vấn đề gì trên VMS / OpenVMS và điều đó làm cho bí ngô của tôi mờ đi khi nghĩ rằng nó khó khăn hơn trên Linux.

Câu trả lời:


2

Thật không may, giao diện để tăng tín hiệu thông qua các ký tự ma thuật, không phải là một thứ liên kết ký tự-tín hiệu chung - có một số tín hiệu cụ thể có thể được nâng lên như thế này, và bạn có thể chọn ký tự, nhưng không phải là tín hiệu: xem chương liên quan của đặc tả POSIX .

(Ngoài SIGINTSIGQUIT, tùy chọn khác của bạn để đồng chọn tín hiệu là SIGTSTP, nếu bạn có thể sống mà không thể dừng quá trình của mình ^Z- điều mà tôi đoán có thể là trường hợp nếu bạn muốn để nó chạy ở phía trước. )


Đó là những gì tôi sợ. Cảm ơn con trỏ và câu trả lời!
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.