我把信号处理程序函数放在哪里:
signal.signal(signal.SIGHUP, signal_handler)
在Python代码内部检测主函数和另一个函数中的闭包:
def signal_handler(sig, frame):
logging.basicConfig(filename="newfile.log", format='%(asctime)s %(message)s',filemode='w')
print("Inside handler")
如果用户在主功能执行之前关闭了Ubuntu终端,要执行吗?没有信号.pause((用于没有循环的程序
示例:
import signal
import sys
import logging
def main():
print("Main function execution")
signal.signal(signal.SIGHUP, signal_handler)
def signal_handler(sig, frame):
logging.basicConfig(filename="newfile.log", format='%(asctime)s %(message)s',filemode='w')
print("Inside handler")
# Create and configure logger
if __name__=="__main__":
main()
假设主功能执行10-20秒,并且在该执行帧内检测到关闭
假设def main()
运行10秒。在主功能(if name==_main)
中添加signal.signal(signal.SIGHUP, HANDLER)
帮助我检测终端关闭