当前位置:首页 > 数码 > Linux-中正确终止进程的指南-防止失误和确保系统稳固 (linux系统)

Linux-中正确终止进程的指南-防止失误和确保系统稳固 (linux系统)

admin4个月前 (05-09)数码35
linux系统

DevOps工程师或系统治理员经常须要治理系统进程。了解如何治理进程关于监控、调试和裁减运行程序是无法或缺的。每个DevOps工程师都应相熟一个基本命令即kill命令,它可以向进程发送信号以成功终止、控制或终止进程的性能。咱们须要了解不同信号的含意及其适用场景。

本文引见kill命令的演化历程、上班原理以及一些最佳通常,协助大家更好地理解和运行这个关键的进程治理工具。

1kill命令简介

在类UNIX操作系统中,kill命令的外围性能是向进程发送信号。只管"kill"这个名字或者暗示其关键目的是终止进程,但关键的是咱们要了解"kill"更多的是关于发送信号的操作,而终止(SIGTERM)只是它可以发送的泛滥信号中的一种。

以下是一些经常使用kill命令的基本示例:

$kill[pid]
$kill-SIGNAME[pid]
$kill-SIGNAME[pid1][pid2][pid3]...
$kill-l1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL5)SIGTRAP6)SIGABRT7)SIGBUS8)SIGFPE9)SIGKILL10)SIGUSR111)SIGSEGV12)SIGUSR213)SIGPIPE14)SIGALRM15)SIGTERM16)SIGSTKFLT17)SIGCHLD18)SIGCONT19)SIGSTOP20)SIGTSTP21)SIGTTIN22)SIGTTOU23)SIGURG24)SIGXCPU25)SIGXFSZ26)SIGVTALRM27)SIGPROF28)SIGWINCH29)SIGIO30)SIGPWR31)SIGSYS34)SIGRTMIN35)SIGRTMIN+136)SIGRTMIN+237)SIGRTMIN+338)SIGRTMIN+439)SIGRTMIN+540)SIGRTMIN+641)SIGRTMIN+742)SIGRTMIN+843)SIGRTMIN+944)SIGRTMIN+1045)SIGRTMIN+1146)SIGRTMIN+1247)SIGRTMIN+1348)SIGRTMIN+1449)SIGRTMIN+1550)SIGRTMAX-1451)SIGRTMAX-1352)SIGRTMAX-1253)SIGRTMAX-1154)SIGRTMAX-1055)SIGRTMAX-956)SIGRTMAX-857)SIGRTMAX-758)SIGRTMAX-659)SIGRTMAX-560)SIGRTMAX-461)SIGRTMAX-362)SIGRTMAX-263)SIGRTMAX-164)SIGRTMAX

2kill命令的历史

kill命令的来源可以追溯到20世纪60年代末和70年代初的UNIX降生。UNIX是由肯·汤普森(KenThompson)、丹尼斯·里奇(DennisRitchie)和其他人在AT&T贝尔试验室开发的。UNIX的关键目的是创立一个繁难的操作系统,支持多义务处置,用初级言语(C言语)编写,并在命令行环境中提供丰盛的适用工具集。

UNIX的指点准绳之一是做好一件事并做好它。这象征着适用工具被设计成能够高效地口头单个义务,并与其余程序良好配合。正是出于这一理念,许多小型、多用途的适用工具被发明进去,可以以各种方式组合以口头复杂的义务。kill命令是这一理念的典型例子:它的惟一目的是向进程发送信号,是无法或缺的。在UNIX系统中,kill命令是一种弱小而灵敏的工具,使咱们能够对进程启动控制和治理,为上班提供了关键的支持。

2.1kill命令的演化

3kill命令的上班原理

UNIX系统中的每个进程都有惟一的进程ID(PID)。kill命令经过向具备给定PID的进程发送指定的信号来上班。假设未指定信号,kill自动发送SIGTERM信号,这会要求进程终止,以便启动资源清算或成功任何必要的最后义务。

kill的/target=_blankclass=infotextkey>Python封装

importosimportsignalimportsysdefkill_process(pid,sig=signal.SIGTERM):try:os.kill(pid,sig)print(f"已向进程{pid}发送信号{sig}。")exceptProcessLookupError:print(f"失误:找不到进程{pid}。")exceptPermissionError:print(f"失误:无权向进程{pid}发送信号。")if__name__=="__mn__":iflen(sys.argv)<3:print("用法:pythonkill_impl.py")sys.exit(1)sig=int(sys.argv[1])pid=int(sys.argv[2])kill_process(pid,sig)

4kill命令的经常出现信号

4.1SIGTERM(15)

$kill-1512345

4.2SIGKILL(9)

$kill-912345

4.3SIGHUP(1)

$kill-112345

4.4SIGINT(2)

$kill-212345

4.5SIGQUIT(3)

$kill-312345

5kill命令的最佳通常

在DevOps环境中治理系统时,妥善且有效地经常使用kill命令十分关键。以下是DevOps工程师在经常使用kill命令时应遵照的一些最佳通常:

这些最佳通常有助于愈加安保地经常使用kill命令,缩小异常终止进程或形成系统不稳固的危险。请务必在治理系统时遵照这些准绳,以确保系统的牢靠性和稳固性。


4-6 Linux 终止进程 --- kill (kill -15 实验)

kill -15 PID —— 正常方式终止一个程序。 中断进程时应首先用 -15,以便于其能够预先清理临时文件和释放资源。 -9作为最后手段,应对那些失控的进程。 1)、kill -15 终止后台运行的进程。 红色下划线:sleep & —— 后台运行延时 秒的命令,进程 ID 为1550。 黄色下划线:ps -j —— 列出 1550 sleep 命令的进程。 (PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制。 (pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数)。 jobs -l —— 列出后台运行的命令,1550 sleep 命令正在后台运行。 蓝色下划线:kill -15 1550—— 终止1550 进程。 系统反馈Terminated终止 1550 进程。 绿色方框:ps -j 已查询不到1550 sleep 的进程。 jobs -l 也没有后台运行的命令。 2)、kill -15 配合 fg 查看终止挂起的进程。 红色下划线:sleep 延时 秒后 ctrl + z 挂起。 黄色下划线:ps -j 查看进程,有 1578 sleep 的进程。 jobs -l 查看后台,1578 sleep 的状态是 stopped 暂停状态。 蓝色下划线:kill -15 终止 1578 进程。 此时系统没有反馈信息。 绿色下划线:ps -j 查看进程,1578 sleep 进程仍在。 jobs -l 查看后台,1578 sleep 的状态是 stopped 暂停状态。 红色下划线:fg 1 把后台运行的 sleep 调至前台继续运行。 此时,系统首先提示 sleep 已经调至前台运行,然后又提示Terminated 终止进程。 蓝色下划线:ps -j 查看进程已经没有了 1578 sleep 进程。 jobs -j 查看也后台也没有命令在执行。 3)、kill -15 配合 bg 查看终止挂起的进程。 同样的,首先sleep 后 ctrl + z 挂起。 通过 ps -j 查看后台进程有 1590 sleep进程,josb -l 查看后台也有状态为 stopped 的1590 sleep 命令。 然后,kill -15 1590 终止 1590 进程。 再次通过 ps -j 查看1590 sleep进程仍在,josb -l 查看后台还有状态为 stopped 的1590 sleep 命令。 红色下划线:bg 1 把挂起的 sleep 命令继续运行。 此时,系统反馈 sleep 命令在后台运行。 黄色下划线:ps -j 查看进程,系统反馈 sleep 进程已经 Terminated 终止。 jobs -l 也查询不到sleep 在后台运行。 从实验上看: 1、后台命令运行时(Running),执行 kill -15 可以终止进程。 2、挂起命令,处于暂停状态时(Stopped),执行 kill -15 后通过 ps 还可以查询到进程, jobs还可以查询到后台命令,状态仍然是 Stopped 暂停状态。 用 fg 把暂停的后台进程调至前台运行时,系统反馈一行 sleep 命令调至前台运行。 跟着一条 Terminated 终止进程。 再用 ps 查询不到进程。 用 jobs 已经查询不到后台命令。 (这里和 kill -2 不同,kill -2 后用 fg 系统只反馈一行 sleep 命令调至前台运行,没有提示进程已中断。 ) 3、挂起命令,处于暂停状态时(Stopped),执行 kill -15 后通过 ps 还可以查询到进程, jobs还可以查询到后台命令,状态仍然是Stopped 暂停状态。 用 bg 把暂停的后台命令恢复运行时,系统反馈 sleep 命令在后台运行。 再用 ps 查询进程已经终止,用 jobs 已经查询不到后台命令。 (这里和 kill -2一样)

以下Linux命令中,用于终止某个进程的命令是( )。

【答案】:B在Linux操作系统中有多种方法终止命令的执行。 终止当前正在执行的某个命令最快的方法是按下组合键“Ctl+C。 这个方法只有在用户能够从某个虚拟控制台上控制这个程序的时候才奏效。 终止某个出错程序的另外一个办法是kill (杀)掉它的进程。 参照下面的步骤进行操作:①输入“ps”命令获取进程的PID,这个命令要求你是运行这个程序的用户或者是根用户。 如果是根用户,输入“ps -aux命令可查看所有的进程。 ②在清单中找到这个出错进程。 ③记下ps命令输出清单中进程状态行最左边的ID数字。 ④输入 kill ID”,终止该进程。 因此Linux中的kill命令用来终止指定的进程的运行,是Linux下进程管理的常用命令。 格式是kill[参数][进程号]。

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: Linux

“Linux-中正确终止进程的指南-防止失误和确保系统稳固 (linux系统)” 的相关文章

系统中内存管理和优化指南-有效处理内存问题-Linux (系统内存管理)

系统中内存管理和优化指南-有效处理内存问题-Linux (系统内存管理)

本文将详细介绍内存管理和优化的几个高级技巧,帮助系统管理员和开发人员更好地优化 Linux 系统的内存使用情况,提高系统性能和稳定性。 1. 页面置换策略 Linux 使用页面置换算法...

经常使用-grep-awk把握日志监控-中日志剖析神器-ail-Linux-和 (经常使用公共卫生间引起尿路感染)

经常使用-grep-awk把握日志监控-中日志剖析神器-ail-Linux-和 (经常使用公共卫生间引起尿路感染)

一个日志查问剖析的例子 名目颁布上线后,接上去须要做什么?开Party,庆贺名目上线。但是Party开到一半,服务运转出了点疑问。指导要你马上考查要素并给出适合的处置方法。名目才刚上线,日志...

在Linux系统中每隔1小时智能运转指定命令 (在linux系统中,以什么访问设备)

在Linux系统中每隔1小时智能运转指定命令 (在linux系统中,以什么访问设备)

在系统中,通常状况下经常使用crontab命令来设置定时义务,本文以每隔1个小时运转一条指令为例子,和大家一同探讨crontab的用法。 详细的操作步骤: 0*/1***/path/com...

如何管理数据存储-深入剖析Linux中的磁盘和文件系统 (如何管理数据库团队)

如何管理数据存储-深入剖析Linux中的磁盘和文件系统 (如何管理数据库团队)

简介 在Linux系统中,一切皆文件的概念意味着所有的资源,包括普通文件、目录以及设备文件等,都以文件的形式存在。这种统一的文件系统管理方式使得Linux系统具有高度的灵活性和可扩展性。本文将深...

可视化管理神器-运维效率翻倍-VisualPlus-Linux (可视化管理神器怎么用)

可视化管理神器-运维效率翻倍-VisualPlus-Linux (可视化管理神器怎么用)

简介 Linux是一种功能强大且广泛使用的操作系统,服务器的运维管理主要依赖命令行操作。对于普通人来说,这种方式晦涩难懂,相对复杂。而1Panel是一款开源的Linux可视化管理项目,旨在为...

Linux子系统概览

Linux子系统概览

Linux操作系统是一个模块化的系统,由多个子系统组成。这些子系统协同工作,使Linux能够执行各种任务。了解Linux的子系统有助于更好地理解整个操作系统的运作机制。 内核子系统...

新特性和改进-Linux-6.9 (新特性和改进的区别)

新特性和改进-Linux-6.9 (新特性和改进的区别)

Linus Torvalds has announced the release of Linux 6.9-rc1, the first Release Candidate (RC) for th...

和开源的六大趋势预测-年-2024-Linux (开源有哪些)

和开源的六大趋势预测-年-2024-Linux (开源有哪些)

2024 年的钟声已经敲响,我们有必要展望一下将塑造本年度的各种潮流。我们不能预见未来,所以无法精确预知将会发生什么,但根据目前观察到的动向,我们可以进行一些预测。以下是我们对开源发展方向的预测。...