Linux kill 命令用于终止进程,其用法步骤如下:
成都创新互联主要从事网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务桐乡,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792
需要准备的材料分别是:电脑、linux连接工具。
1、首先连接上linux主机,进入命令行状态。
2、输入:ps -ef,按回车,查询进程列表。
3、选择需要终止的进程,例如PID为9977的进程,则命令行输入:kill 9977,按回车即可终止该进程。
kill 命令通常用于终止执行中的程序。 kill可将指定的信息送至程序。默认送的信息为SIGTERM (信息编号为15),代表关闭进程
kill -9 pid kill -15 pid (效果等同于 kill pid )
其中 9 和 15 指的是信息编号
什么是信息编号
使用kill -l 命令可以查看信息及编号
信息编号代指不同的信息,不同的信息有不同的含义
可以看到 9代表 SIGKILL,15 代表 SIGTERM 所以 ==kill -9 pid 代表 发送SIGKILL信息给这个pid的程序 kill -15 pid 代表 发送SIGTERM信息给这个pid的程序==
那么 SIGTERM(15)和 SIGKILL(9)有什么区别
SIGTERM :当进程接收到SIGTERM后,大多会先释放自己的资源,再停止进程,属于正常关闭进程,但是如果进程正在工作,处理io等,不会立马关闭,或者 进程卡死的情况,都会导致SIGTERM不起作用。
SIGKILL : SIGKILL信号要求进程 立即关闭,强制关闭进程。
工作中关闭进程时,==先kill pid(默认使用编号15),如果不起作用 再使用 kill -9 pid。==
查看nginx的pid: ps -ef | grep nginx
可以看到nginx的主进程编号 是 7901
正常关闭 nginx的主进程
kill -15 7901 或者 kill 7901 再次查看nginx的进程 发现已经关闭
启动nginx,查看进程号,再强制关闭 nginx
nginx
ps -ef | grep nginx
kill -9 9827
ps -ef | grep nginx
可以看到 kill -9 只是强制关闭了 nginx的主进程,由于不是正常关闭,worker进程并没有被关闭,这就是强制关闭的弊端,再次关闭worker进程 kill -9 9828
1、kill 命令默认使用的信息编号及信息是什么?
:15,代表正常关闭进程
2、kill -9 pid 中 信息编号9代表什么信息?
:强制关闭进程
3、如何查看kill的信息编号?
:kill -l
4、写出正常关闭 进程编号 为 233 的命令
:kill -15 pid or kill pid
5、写出强制关闭 进程编号 为 233 的命令
:kill -9 pid
具体操作步骤如下:
1、首先打开linux终端,运行一段Python程序:
2、然后在程序运行中,需要终止程序运行时,按下快捷键crtl+c就可以终止指令程序,此时运行的这段python程序就被终止了。所有的指令都可以用这个快捷键终止运行:
3、最后再次运行一下刚才的程序,这里直接使用Ctrl+ Z快捷键终止运行程序是可以达到同样的效果的:
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;