IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python 获取Ctrl+c 信号并处理 -> 正文阅读

[Python知识库]python 获取Ctrl+c 信号并处理

import signal

# 自定义信号处理函数
def my_handler(signum, frame):
    global stop
    stop = True
    print("终止")


# 设置相应信号处理的handler
signal.signal(signal.SIGINT, my_handler)    #读取Ctrl+c信号
# signal.signal(signal.SIGHUP, my_handler)    
# signal.signal(signal.SIGTERM, my_handler)

stop = False

while True:
    try:
        #读取到Ctrl+c前进行的操作
        if stop:
            # 中断时需要处理的代码
            break    #break只能退出当前循坏
            #中断程序需要用 raise
    except Exception as e:
        print(str(e))
        break

补充:

键盘和shell的交互:

Ctrl-c Kill foreground process?常用?;送SIGINT信号,默认进程会结束,但是进程自己可以重定义收到这个信号的行为。

Ctrl-z Suspend foreground process;送SIGSTOP信号,进程只是被停止,再送SIGCONT信号,进程继续运行。

Ctrl-d Terminate input, or exit shell?常用?有时也会使程序退出,例如没有参数的cat命令,从终端读一行显示一行,知道Ctrl+D终结输入并终结进程;不是发送信号,而是表示一个特殊的二进制值,表示 EOF。

Ctrl-s Suspend output

Ctrl-q Resume output

Ctrl-o Discard output

Ctrl-l Clear screen

控制字符都是可以用(stty命令)更改的。可以用stty -a看看终端配置。

SIGHUP 1 A 终端挂起或者控制进程终止

SIGINT 2 A 键盘中断(如break键被按下)

SIGQUIT 3 C 键盘的退出键被按下

SIGILL 4 C 非法指令

SIGABRT 6 C 由abort(3)发出的退出指令

SIGFPE 8 C 浮点异常

SIGKILL 9 AEF Kill信号

SIGSEGV 11 C 无效的内存引用

SIGPIPE 13 A 管道破裂: 写一个没有读端口的管道? S

IGALRM 14 A 由alarm(2)发出的信号

SIGTERM 15 A 终止信号?

SIGUSR1 30,10,16 A 用户自定义信号1?

SIGUSR2 31,12,17 A 用户自定义信号2?

SIGCHLD 20,17,18 B 子进程结束信号?

SIGCONT 19,18,25 进程继续(曾被停止的进程)?

SIGSTOP 17,19,23 DEF 终止进程?

SIGTSTP 18,20,24 D 控制终端(tty)上按下停止键?

SIGTTIN 21,21,26 D 后台进程企图从控制终端读?

SIGTTOU 22,22,27 D 后台进程企图从控制终端写

处理动作一项中的字母含义如下:?

A 缺省的动作是终止进程?

B 缺省的动作是忽略此信号?

C 缺省的动作是终止进程并进行内核映像转储(dump core)?

D 缺省的动作是停止进程?

E 信号不能被捕获?

F 信号不能被忽略

参考:https://cloud.tencent.com/developer/article/1565135

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-24 15:14:36  更:2022-02-24 15:16:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:32:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码