终止进程 linux(linux杀死进程命令)

大家好,感谢邀请,今天来为大家分享一下终止进程 linux的问题,以及和linux杀死进程命令的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

Linux 下如何结束指定进程

一般linux使用kill来结束进程

Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。

1.命令格式:

kill[参数][进程号]

2.命令功能:

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL”参数,其发送的信号为SIGKILL(9),将强制结束进程,使用ps命令或者jobs命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

3.命令参数:

-l信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a当处理当前进程时,不限制命令名和进程号的对应关系

-p指定kill命令只打印相关进程的进程号,而不发送任何信号

-s指定发送信号

-u指定用户

注意:

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

kill-2 123

它的效果等同于在前台运行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启动的进程,是个有效的方法。

Linux环境下如何终止后台进程

一、&

加在一个命令的最后,可以把这个命令放到后台执行,如gftp&,

二、ctrl+ z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行

三、jobs

查看当前有多少在后台运行的命令

jobs-l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated,但是如果任务被终止了(kill),shell从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

四、fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五、bg

将一个在后台暂停的命令,变成继续执行(在后台执行)

如果后台中有多个命令,可以用bg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

将任务转移到后台运行:

先ctrl+ z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。

概念:当前任务

如果后台的任务号有2个,[1],[2];如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]”的后台任务。所以可以得出一点,即当前任务是会变动的。当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动的均是当前任务

进程的终止

后台进程的终止:

方法一:

通过jobs命令查看job号(假设为num),然后执行kill%num

方法二:

通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid

前台进程的终止:

ctrl+c

kill的其他作用

kill除了可以终止进程,还能给进程发送其它信号,使用kill-l可以察看kill支持的信号。

SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。如果进程还没有终止,可以使用kill-SIGKILL pid,这是由内核来终止进程,进程不能监听这个信号。

进程的挂起

1)、后台进程的挂起:

在solaris中通过stop命令执行,通过jobs命令查看job号(假设为num),然后执行stop%num;

在redhat中,不存在stop命令,可通过执行命令kill-stop PID,将进程挂起;

当要重新执行当前被挂起的任务时,通过bg%num即可将挂起的job的状态由stopped改为running,仍在后台执行;当需要改为在前台执行时,执行命令fg%num即可;

2)、前台进程的挂起:

ctrl+Z;

linux结束进程命令有哪些

linux任务管理-后台运行与终止

fg、bg、jobs、&、ctrl+ z命令

一、&

加在一个命令的最后,可以把这个命令放到后台执行,如gftp&,

二、ctrl+ z

可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行

三、jobs

查看当前有多少在后台运行的命令

jobs

-l选项可显示所有任务的PID,jobs的状态可以是running, stopped,

Terminated,但是如果任务被终止了(kill),shell

从当前的shell环境已知的列表中删除任务的进程标识;也就是说,jobs命令显示的是当前shell环境中所起的后台正在运行或者被挂起的任务信息;

四、fg

将后台中的命令调至前台继续运行

如果后台中有多个命令,可以用 fg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

五、bg

将一个在后台暂停的命令,变成继续执行(在后台执行)

如果后台中有多个命令,可以用bg%jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

将任务转移到后台运行:

先ctrl+ z;再bg,这样进程就被移到后台运行,终端还能继续接受命令。

概念:当前任务

果后台的任务号有2个,[1],[2];如果当第一个后台任务顺利执行完毕,第二个后台任务还在执行中时,当前任务便会自动变成后台任务号码“[2]”

的后台任务。所以可以得出一点,即当前任务是会变动的。当用户输入“fg”、“bg”和“stop”等命令时,如果不加任何引号,则所变动的均是当前任务

进程的终止

后台进程的终止:

方法一:

通过jobs命令查看job号(假设为num),然后执行kill%num

方法二:

通过ps命令查看job的进程号(PID,假设为pid),然后执行kill pid

前台进程的终止:

ctrl+c

kill的其他作用

kill除了可以终止进程,还能给进程发送其它信号,使用kill-l可以察看kill支持的信号。

SIGTERM是不带参数时kill发送的信号,意思是要进程终止运行,但执行与否还得看进程是否支持。如果进程还没有终止,可以使用kill-SIGKILL pid,这是由内核来终止进程,进程不能监听这个信号。

进程的挂起

后台进程的挂起:

在solaris中通过stop命令执行,通过jobs命令查看job号(假设为num),然后执行stop%num;

在redhat中,不存在stop命令,可通过执行命令kill-stop PID,将进程挂起;

当要重新执行当前被挂起的任务时,通过bg%num即可将挂起的job的状态由stopped改为running,仍在后台执行;当需要改为在前台执行时,执行命令fg%num即可;

前台进程的挂起:

ctrl+Z;

阅读剩余
THE END