ctrl+c kill -9 kill -15 差异性 python和linux中的信号

简介: ctrl+c kill -9 kill -15 差异性 python和linux中的信号

python中常用的signal 信号


• SIGINT 终止进程 中断进程 (ctrl+c)


• SIGTERM 终止进程 优雅杀死,留有时间(kill -15 pid)


• SIGKILL 终止进程 杀死进程 (kill -9 pid)


• ctrl+c 终止当前会话(运行的脚本,命令)


• kill -9 pid 强制终止进程


• kill -15 pid 给进程留有时间,先关闭有关的程序,再将程序关闭(优雅的杀死进程)


查看python 进程

ps -ef |grep python

python3中提供的信号

import signal
dir(signal)

1.png

Linux中提供的信号
// A code block
kill -l

2.png

根据python的信号进行捕获操作
import signal,time
import sys
def term_sig_handler(signum, frame):
    print ('catched singal: %d' % signum)
    sys.exit()
if __name__ == '__main__':
    signal.signal(signal.SIGTERM, term_sig_handler)   #kill pid
    signal.signal(signal.SIGINT, term_sig_handler)     #ctrl -c
    # signal.signal(signal.SIGKILL, term_sig_handler)  #kill -9 pid  此功能无效
    while True:
        print ('good')
        time.sleep(5)

ctrl+c(kill -2 pid)

3.png

kill -15 pid

4.png

kill -4 pid

5.png


目录
相关文章
|
5月前
|
网络协议 API 开发者
分析http.client与requests在Python中的性能差异并优化。
合理地选择 `http.client`和 `requests`库以及在此基础上优化代码,可以帮助你的Python网络编程更加顺利,无论是在性能还是在易用性上。我们通常推荐使用 `requests`库,因为它的易用性。对于需要大量详细控制的任务,或者对性能有严格要求的情况,可以考虑使用 `http.client`库。同时,不断优化并管理员连接、设定合理超时和重试都是提高网络访问效率和稳定性的好方式。
133 19
|
7月前
|
安全 Linux
【Linux】阻塞信号|信号原理
本教程从信号的基本概念入手,逐步讲解了阻塞信号的实现方法及其应用场景。通过对这些技术的掌握,您可以更好地控制进程在处理信号时的行为,确保应用程序在复杂的多任务环境中正常运行。
268 84
|
8月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
139 26
|
8月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
本文详细介绍了如何在Linux中通过在业务线程中注册和处理信号。我们讨论了信号的基本概念,并通过完整的代码示例展示了在业务线程中注册和处理信号的方法。通过正确地使用信号处理机制,可以提高程序的健壮性和响应能力。希望本文能帮助您更好地理解和应用Linux信号处理,提高开发效率和代码质量。
145 17
|
10月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
11月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
安全 Linux 开发者
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
290 4
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
320 3
|
Linux Python
Linux之centos安装clinkhouse以及python如何连接
Linux之centos安装clinkhouse以及python如何连接