在 Linux 系统下,Python 可以使用 signal
模块来处理系统级别的异常
import signal
import time
def handle_sigterm(*args):
print("Received SIGTERM, exiting...")
# 在这里添加你需要在程序退出前执行的代码
exit(0)
# 注册信号处理函数
signal.signal(signal.SIGTERM, handle_sigterm)
print("Running the program...")
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
print("Received KeyboardInterrupt, exiting...")
break
在这个示例中,我们定义了一个名为 handle_sigterm
的信号处理函数。当程序收到 SIGTERM
信号时,这个函数会被调用。我们使用 signal.signal()
函数将 SIGTERM
信号与 handle_sigterm
函数关联起来。
在主循环中,我们使用 try-except
语句捕获 KeyboardInterrupt
异常,这样当用户按下 Ctrl+C 时,程序会优雅地退出,而不是崩溃。
你可以根据需要捕获其他类型的信号,例如 SIGINT
、SIGHUP
等。只需将相应的信号编号传递给 signal.signal()
函数即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。