python使用訊號量動態更新配置檔案

2021-09-23 14:09:07 字數 1458 閱讀 7594

一種小技巧,可以讓python捕獲訊號量hup 然後當使用 kill 發起hup訊號量的時候 捕獲到進行處理,可以處理為重新讀取配置檔案並重新賦值,這樣不需要重啟服務也可以讓程式重新讀取配置檔案的內容

捕獲訊號量

import signal

import configparser

def get_config():

conf = configparser.configparser()

conf.read("config.cfg")

name = conf.get("test", "name")

print(name)

def update_config(signum,frame):

print("update config")

get_config()

def ctrl_c(signum,frame):

print("input ctrl c")

exit(1)

# 捕獲hup

signal.signal(signal.sighup, update_config)

# 捕獲ctrl+c

signal.signal(signal.sigint, ctrl_c)

print("test signal")

get_config()

while true:

pass

配置檔案

$ cat config.cfg 

[test]

# name = "recar"

name = "@@@"

執行程式 python

修改配置檔案 name為recar

發起hup訊號

切到捕獲的訊號量看到重新更新了配置檔案

這裡我開始還有的from config import name

然後捕獲訊號量再重新匯入,也就是再執行一下from config import name

這樣是不行的,如果想要重新匯入需要 reload(模組) 但是這裡reload不支援 from的形式

我改為import config然後在 自定義的訊號量處理函式中reload(config)來實現重新載入模組。

還是推薦使用configparser來獲取配置檔案好一些。

python訊號量 Python訊號量

python訊號量教程 訊號量是由作業系統管理的一種抽象資料型別,用於在多執行緒中同步對共享資源的使用。本質上說,訊號量是乙個內部資料,用於標明當前的共享資源可以有多少併發讀取。也可以簡單的理解為,訊號量是多把鎖,同時允許多個執行緒來更改資料,而 python訊號量與互斥鎖的關係 訊號量的乙個特殊用...

python使用訊號量動態更新配置檔案的操作

一種小技巧,可以讓python捕獲訊號量hup 然後當使用 kill 發起hup訊號量的時候 捕獲到進行處理,可以處理為重新讀取配置檔案並重新賦值,這樣不需要重啟服務也可以讓程式重新讀取配置檔案的內容 捕獲訊號量 import signal import configparser def get c...

訊號量 二值訊號量

訊號量 二值訊號量 訊號量是作業系統的重要部分,訊號量一般用來進行資源管理和任務同步。freertos中訊號量分為二值訊號量 互斥訊號量 計數訊號量和遞迴互斥訊號量,應用場景各不同。二值訊號量通常用於互斥訪問或同步,二值訊號量和互斥訊號量非常相似,但互斥訊號量有優先順序,二值訊號量沒有。因此二值訊號...