Linux下杀进程的实例 (linux 杀进程实例)

在Linux系统中,进程管理是非常重要的一项任务,进程的创建、管理以及关闭都需要管理员的关注和操作。有时候,发现某个进程正在占用过多的系统资源,或者进程出现异常行为威胁系统安全,就需要杀掉该进程。本文将介绍在,方便用户随时掌握如何关闭进程。

1.查看进程信息

在杀进程之前,首先需要查看进程的PID(进程ID)信息,可以通过以下命令查看:

“`

ps -ef | grep 进程名

“`

其中,ps命令可以列出当前系统中正在运行的进程,-ef选项能够把所有进程信息列出来,grep命令可以筛选出我们想要查找的进程信息。

2.杀进程

一旦获得进程的PID信息,就可以使用kill命令杀掉该进程。kill有多种信号可以用来杀死进程,常用的有SIGKILL和SIGTERM两种信号,分别表示强制杀死和正常退出。下面是相应的示例命令:

“`

kill -9 进程PID

kill -15 进程PID

“`

其中,-9选项表示使用SIGKILL信号杀进程,它能够直接终止进程;-15选项表示使用SIGTERM信号杀进程,它会先向进程发送终止信号,然后等待进程结束。一般情况下,尽量使用SIGTERM信号杀进程,因为它能够保证进程正常退出,避免数据丢失或者资源泄漏等问题。

3.使用pkill命令杀进程

除了kill命令,还有一个更方便的命令pkill可以用来杀进程。该命令能够根据进程名或者其他属性来查找进程,并且自动使用SIGTERM信号杀死它们。下面是使用pkill命令杀进程的示例:

“`

pkill 进程名

“`

如果要强制杀死进程,可以使用-f选项:

“`

pkill -f 进程名

“`

-f选项表示从完整的命令行中查找进程名,比较适用于查找长名字的进程。

4.关于杀进程的注意事项

在杀进程时,需要注意以下几点:

– 要确保要杀的进程是当前用户拥有的,否则可能需要使用sudo命令;

– 杀进程会导致数据丢失或者系统崩溃等风险,请谨慎操作;

– 不要随意杀掉系统进程或者系统服务,这可能会影响系统稳定性;

– 在杀进程之前,更好先备份进程相关的数据,以防不测;

– 如果使用SIGKILL信号杀进程,会直接强制终止进程,可能导致数据损坏或者资源泄漏等问题,只有在出现无法通过其他手段终止的进程时,才应使用该信号。

本文介绍了在,包括了使用kill命令和pkill命令,以及相应的注意事项。杀进程是Linux系统管理中比较重要的一项任务,需要用户熟练掌握操作方法,并且谨慎处理相关问题,以确保系统安全稳定。

相关问题拓展阅读:

Linux kill 命令怎么用?

一、使用方式:

kill pid | jobspec … or kill -l

二、说明:

1、kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作,若没有指定,预设是送出终止 (TERM) 的信号;

2、-s (signal) : 其中常用的讯号有 HUP (1),KILL (9),TERM (15),分别代表着重跑,砍掉,结束; 详细的信号可以用 kill -l (见下结果,可用数字带入);

3、-p : 印出 pid,并不送出信号;

4、-l (signal) : 列出所有可用的信号名称;

三、范例:

1、将 pid 为 323 的线程砍掉 (kill) :kill

2、将 pid 为 456 的线程重跑 (restart) :kill -HUP 456

扩展资料

一、注意事项:

1、kill命令可以带信号号码选项,也可以不带。

如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。

例如:kill

它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。

但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。

2、kill可以带有进程ID号作为参数。

当用kill向这些进程发送信号时,必须是这些进程的主人。

如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

3、可以向多个进程发信号或终止它们。

4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。

有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。

5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。

发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。

要撤销所有的后台作业,可以输入kill 0。

因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。

参考资料来源:百度百科-kill(IT行业语)

Linux kill 命令用于终止进程,其用法步骤如下:

需要准备的材料分别是:电脑、linux连接工具。

1、首先连接上linux主机,进入

命令行

状态。

2、输入:ps -ef,按回车,查询进程列表。

3、选择需要终止的进程,例如PID为9977的进程,则命令行输入:kill 9977,按回车即可终止该进程。

shell special parameter and wait corresponding to a process that was ter minated by a signal, the signal corresponding to the signal that terminated the process will be written. If an exit_status operand is given and it is the unsigned decimal integer value of a signal number, the signal corresponding to that signal will be written. Otherwise, the results are unspecified. pid One of the following: 1. A decimal integer specifying a process or process group to be signaled. The process or processes selected by positive, negative and zero values of the pid operand will be as described for the kill function. If process number 0 is specified, all processes in the process group are signaled. If the first pid operand is negative, it should be preceded by — to keep it from being interpreted as an option. 2. A job control job ID that identifies a background process group to be signaled. The job control job ID notation is applicable only for invocations of kill in the current shell execution environment. Note the job control job ID type of pid is available only on systems supporting the job control option. kill命令 当需要中断一个前台进程的时候,通常是使用组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。 kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。 kill命令的语法格式很简单,大致有以下两种方式: kill 进程号 …… kill -l -s 指定需要送出的信号。既可以是信号名也可以对应数字。 -p 指定kill命令只是显示进程的pid,并不真正送出结束信号。 -l 显示信号名称列表,这也可以在/usr/include/linux/signal.h文件中找到。 kill命令的使用 下面看看该命令的使用。 例:在执行一条find指令时由于时间过长,决定终止该进程。 首先应该使用ps命令来查看该进程对应的PID,键入ps,显示如下: PID TTY TIME COMMAND# kill 345 再用ps命令查看,就可以看到,find进程已经被杀掉了。 例:杀掉进程11721 # ps PID TTY TIME COMMAND# kill控制多个进程命令 Linux可使用户同时运行多个进程,还允许用户或系统管理员能控制正在运行的进程。 nohup命令 理论上,我们一般退出Linux系统时,会把所有的程序全部结束掉,包括那些后台程序。但有时候,例如您正在编辑一个很长的程序,但是您下班或是有事需要先退出系统,这时您又不希望系统把您编辑那么久的程序结束掉,希望退出系统时,程序还能继续执行。这时,我们就可以使用nohup命令使进程在用户退出后仍继续执行。 一般这些进程我们都是让它在后台执行,结果则会写到用户自己的目录下的nohup.out这个文件里(也可以使用输出重定向,让它输出到一个特定的文件)。 例: $ nohup sort sales.dat & 这条命令告诉sort命令忽略用户已退出系统,它应该一直运行,直到进程完成。利用这种方法,可以启动一个要运行几天甚至几周的进程,而且在它运行时,用户不需要去登录。 nohup命令把一条命令的所有输出和错误信息送到nohup.out文件中。若将输出重定向,则只有错误信息放在nohup.out文件中。 renice命令 renice命令允许用户修改一个正在运行进程的优先权。 利用renice命令可以在命令执行时调整其优先权。其格式如下: $ renice -number PID 其中,参数number与nice命令的number意义相同。 注: (1) 用户只能对自己所有的进程使用renice命令。 (2) root用户可以在任何进程上使用renice命令。 (3) 只有root用户才能提高进程的优先权。

不可以..

kill 这个名字,实质上起的不对…这个命令的意思是,向指定进程ID 发送指定信号.

你里面的 -9 你可以用kill -l(英文L的小写)查看一下…是一个信号.

如果,你想用进程名字..可以用pkill test

这个指令,,实质上是个脚本,,也可能是内置命令.

其实,,你MAN一下,,什么都有了

kill命令用法:

1.作用

kill命令用来中止一个进程。

2.格式

kill pid …

kill -l

3.参数

-s:指定发送的信号。

-p:模拟发送信号。

-l:指定信号的名称列表。

pid:要中止进程的ID号。

Signal:表示信号。

4.说明

进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。

kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。

5.应用实例

(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:

#kill -9 324

(2)解除Linux系统的死锁

在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序:

#kill -SIGKILL XXX

其中,XXX是包含有Mozolla浏览器的程序的进程标识号。

(3)使用命令回收内存

我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令:

#kill -9 XXX

其中,XXX是无用的进程标识号。

然后使用下面命令:

#free

此时会发现可用内存容量增加了。

(4)killall命令

Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:

# killall -HUP inetd

*杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。

首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:

# kill -pid

注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。

*确定要杀死进程的PID或PPID

# ps -ef | grep httpd

*以优雅的方式结束进程

# kill -l PID

-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功–或许仍然需要先手工杀死子进程,然后再杀死父进程。

*TERM信号

给父进程发送一个TERM信号,试图杀死它和它的子进程。

# kill -TERM PPID

*killall命令

killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。

# killall httpd

*停止和重启进程

有时候只想简单的停止和重启进程。如下:

# kill -HUP PID

该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

*绝杀 kill -9 PID

同意的 kill -s SIGKILL

这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

当使用此命令时,一定要通过ps -ef确认没有剩下任何僵尸进程。只能通过终止父进程来消除僵尸进程。如果僵尸进程被init收养,问题就比较严重了。杀死init进程意味着关闭系统。

linux 杀进程实例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 杀进程实例,Linux下杀进程的实例,Linux kill 命令怎么用?的信息别忘了在本站进行查找喔。


数据运维技术 » Linux下杀进程的实例 (linux 杀进程实例)