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

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

admin8个月前 (05-09)数码86
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-中创建文件的八种方法 (linux系统)

在 Linux 系统中,一切皆文件,高效创建文件的技能至关重要,可以节省大量工作时间。 方法 1:重定向符号 (>) 重定向符号用于创建一个 0KB 的空文件,或重定向命令的输出...

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

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

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

嵌入式Linux系统开发 (嵌入式linux)

嵌入式Linux系统开发 (嵌入式linux)

什么是嵌入式系统 嵌入式系统是一种以微处理器为核心的、专门针对某一特定应用设计的计算机系统。它具有体积小、功耗低、成本低、稳定性高、抗干扰能力强等特点。 嵌入式系统操作 嵌入式系...

Cron-Linux-必备定时工具 (cron两小时执行一次)

Cron-Linux-必备定时工具 (cron两小时执行一次)

1. Cron and Crontab Cron is a powerful utility in Unix systems that allows users to schedule task...

打造高效率上班环境-专业开发者定制的Linux桌面系统 (做到高效率)

打造高效率上班环境-专业开发者定制的Linux桌面系统 (做到高效率)

假设您想要一个基于Fedora稳固内核,驳回Ubuntu桌面格调,为开发者专门定制的桌面系统,那Bluefin正合乎您的等候。 像许多玩编程的人,更关键的是,那些真正从事这项上班的人一样,我...

Linux系统下CPU性能问题分析案例 (linux系统怎么关闭防火墙)

Linux系统下CPU性能问题分析案例 (linux系统怎么关闭防火墙)

在监控系统性能时,我们经常会看到 CPU 的 I/O Wait 指标突然升高。本文将介绍如何分析和处理这种情况。 分析过程 检查系统 I/O 情况 I/...

Linux-深入了解符号链接和硬链接的区别与用途-系统中软链接与硬链接 (linux常用命令)

Linux-深入了解符号链接和硬链接的区别与用途-系统中软链接与硬链接 (linux常用命令)

简介 在 Linux 文件系统中,链接是一种特殊的文件类型,允许您创建指向另一个文件或目录的引用。有两种类型的链接:硬链接和软链接。 硬链接 硬链接是指在文件系统中创建一个新的文...

探索free命令的强大功能-掌控Linux中的内存使用 (探索发现)

探索free命令的强大功能-掌控Linux中的内存使用 (探索发现)

概述 在 Linux 系统中,内存管理至关重要,因为它直接影响系统的性能和稳定性。为了帮助用户更好地理解和管理内存使用情况,Linux 提供了 free 命令,这是一个强大的内置命令行工具。...