signal.signal

Python的signal模塊允許您設置信號處理程序,以便在接收到特定信號時執行自定義操作。信號是操作系統向程序傳遞信息的一種方式。在Python中,您可以使用signal.signal()函數註冊信號處理程序,以便在接收到特定信號時執行自定義操作。例如,當按下鍵盤上的Ctrl + C時,操作系統會生成SIGINT信號並將其傳遞給程序。您可以使用signal.signal()函數註冊SIGINT信號處理程序,以便在接收到該信號時執行自定義操作。

以下是一個示例代碼,演示瞭如何在Python中設置信號處理程序:

```python
import signal
import time

# 信號處理程序
def signal_handler(signum, frame):
    print("Signal Number:", signum, " Frame: ", frame)

# 註冊SIGINT信號處理程序
signal.signal(signal.SIGINT, signal_handler)

# 註冊SIGTSTP信號處理程序
def exit_handler(signum, frame):
    print('Exiting....')
    exit(0)
signal.signal(signal.SIGTSTP, exit_handler)

# 循環
while 1:
    print("Press Ctrl + C")
    time.sleep(3)
```

在這個示例中,我們註冊了SIGINT信號處理程序和SIGTSTP信號處理程序。當按下Ctrl + C時,程序將執行signal_handler()函數。當按下Ctrl + Z時,程序將執行exit_handler()函數並退出。

此外,您還可以使用signal.alarm()函數設置定時器信號(SIGALRM)。這樣,當定時器到期時,程序將執行相應的信號處理程序。

希望這可以幫助到您。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章