Golang處理訊號

2021-08-25 13:53:43 字數 1252 閱讀 4477

該包中的所有函式,都是處理os.signal的,os.signal用於接受各種型別的訊號,比如中斷、程式終止等,這些訊號的具體作用可以參考: 中的介紹。我們根據需要使用中斷,可以控制程式執行時間等。

針對linux/unix系統處理訊號,有些類似c語言方式,具體可以回顧這篇筆記.

啟動乙個訊號的作用,c不一定是只寫的,可以是讀寫都行的channel,自動的進行型別轉換。

func

notify

(c chan

<- os.signal, sig ...os.signal)

該函式使得c這個os.signal接收指定型別的訊號,如果不宣告來的型號的型別,則預設接收所有的訊號,**例項:

package main

import

("fmt"

"os"

"os/signal"

"time"

)var chsignal chan os.signal

func

dealsignal()

}func

main()

}

該函式使得應用程式忽略指定的來臨訊號,如果沒有指定訊號,則忽略所有的訊號。

func

ignore

(sig ...os.signal)

package main

import

("os"

"os/signal"

"fmt"

)func

main()

撤銷之之前指定程式能接收的訊號,但是可以重新使用notify指定接收的訊號。

func

reset

(sig ...os.signal)

該函式是c停止接受所有的訊號,撤銷之前對cnotify函式的作用,保證c不會接受其餘的訊號了,即不能呼叫notify為之重新指定訊號。

func

stop

(c chan

<- os.signal)

golang 訊號捕捉和處理

捕捉和處理訊號可以實現優雅start和restart等。golang的signal提供了相關的方法。這裡是乙個模板,目錄結構 sig sig.go test.go 先看如何呼叫 1.new出乙個物件 2.register訊號與對應的處理函式 3.定義os.signal型別的channel,呼叫sig...

Golang中的訊號處理

個平台的訊號定義或許有些不同。下面列出了posix中定義的訊號。linux 使用34 64訊號用作實時系統中。命令man 7 signal提供了官方的訊號介紹。在posix.1 1990標準中定義的訊號列表訊號值 動作說明 sighup 1term 終端控制程序結束 終端連線斷開 sigint 2t...

Golang中的訊號處理

linux 使用34 64訊號用作實時系統中。命令man 7 signal提供了官方的訊號介紹。在posix.1 1990標準中定義的訊號列表訊號值 動作說明 sighup 1term 終端控制程序結束 終端連線斷開 sigint 2term 使用者傳送intr字元 ctrl c 觸發 sigqui...