这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 在ubuntu中,终止一个进程或终止一个正在运行的程序

共2条 1/1 1 跳转至

在ubuntu中,终止一个进程或终止一个正在运行的程序

高工
2018-02-22 13:44:25     打赏
在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。

-------------------------------------------------------------------
先看两个例子: 

例子一:结束某个程序,如Firefox     

键入命令:
pkill firefox 

例子二: 结束某个进程,如find           


先用ps命令来查看该进程对应的PID。
键入ps,显示如下:
PID TTY TIME COMMAND 
285 1 00:00:00 -bash 
287 3 00:00:00 -bash 
289 5 00:00:00 /sbin/mingetty tty5 
290 6 00:00:00 /sbin/mingetty tty6 
312 3 00:00:00 telnet bbs3 
341 4 00:00:00 /sbin/mingetty tty4 
345 1 00:00:00 find / -name foxy.jpg 
348 1 00:00:00 ps 

可以看到该进程对应的PID是345,现在使用kill命令来终止该进程。
键入:
# kill 345 

再用ps命令查看,就可以看到,find进程已经被杀掉了。
---------------------------------------------------------------------------
下面来了解相关命令: 

一、查看进程的命令 有ps、pstree、pgrep等:                                          

1、ps                                               
显示进程信息,参数可省略 
-aux    以BSD风格显示进程 常用 
-efH    以System V风格显示进程 
-e , -A 显示所有进程 
a         显示终端上所有用户的进程 
x         显示无终端进程 
u         显示详细信息 
f          树状显示 
w        完整显示信息 
l          显示长列表 

各列输出字段的含义:

USER         进程所有者
PID            进程ID 
PPID          父进程
%CPU        CPU占用率
%MEM      内存占用率
NI             进程优先级。数值越大,占用CPU时间越少
VSZ           进程虚拟大小
RSS            页面文件占用
TTY            终端ID
STAT          进程状态
+---D    不可中断     Uninterruptible sleep (usually IO)
+---R    正在运行,或在队列中的进程
+---S    处于休眠状态
+---T    停止或被追踪
+---Z    僵尸进程
+---W    进入内存交换(从内核2.6开始无效)
+---X    死掉的进程

+---<    高优先级
+---N    低优先级
+---L    有些页被锁进内存
+---s    包含子进程
+---+    位于后台的进程组;
+---l    多线程,克隆线程  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

PID:进程标识符,系统为每一个进程分配一个识别码,称为PID。          

ps命令极为常用,其他命令还有:

2.pstree                                          
树状显示进程信息
-a 显示完整命令及参数 
-c 重复进程分别显示 
-c 显示进程ID PID 
-n 按 PID 排列进程 

3.pgrep <进程名>                             
显示进程的PID
-l 显示进程名和进程PID 
-o 进程起始ID 
-n 进程终止ID 

二、结束进程的命令 有kill、pkill、killall、xkill等:                                      

kill [信号代码] <进程PID>                  

根据PID向进程发送信号,常用来结束进程,默认信号为 -9 
信号代码,可取值如下:
-l [信号数字] 显示、翻译信号代码 
-9 , -KILL 发送 kill 信号退出 
-6 , -ABRT 发送 abort 信号退出 
-15 , -TERM 发送 Termination 信号 
-1 , -HUP 挂起 
-2 , -INT 从键盘中断,相当于 Ctrl+c 
-3 , -QUIT 从键盘退出,相当于 Ctrl+d 
-4 , -ILL 非法指令 
-11 , -SEGV 内存错误 
-13 , -PIPE 破坏管道 
-14 , -ALRM 
-STOP 停止进程,但不结束 
-CONT 继续运行已停止的进程 
-9 -1 结束当前用户的所有进程 

pkill <进程名>                                 
结束进程族。如果结束单个进程,请用 kill

killall <进程名>                                
killall和pkill 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。

xkill                                                
在图形界面中点杀进程。
当xkill运行时鼠标指针变为骷髅图案,哪个图形程序崩溃一点就OK了。如果您想终止xkill ,就按右键取消。
比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。
xkill 调用方法




专家
2018-02-23 11:27:33     打赏
2楼

如果知道PID,结束PID是最安全的方法。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]