Linux 命令小记ps, kill

我不知道大家,反正我工作中经常遇到开一个进程然后不知什么原因进程各种情况死在那里的情况(大部分distributed/multithreading程序不成熟的时候。。。)总之这个时候要做的就是把程序找到并关掉。所以这里小记一下需要的命令: ps 和 kill.

声明:这里的执行全都来自于Linux Containers,学习linux命令如果没有linux会很无聊的,现在container到处都是,上面那个就可以面试使用 :)

ps(1) - Linux manual page

ps就是用来查看进程,其中 -u 是针对user的选项,我们可以看到它提供了更多的信息 (UER, %CPU等);-x 包含了那些没有tty的进程,所以有更多的返回结果。

root@tryit-ample:~# ps                                                                                                                               
    PID TTY          TIME CMD                                                                                                                        
     92 pts/1    00:00:00 bash                                                                                                                       
    170 pts/1    00:00:00 ps 
root@tryit-ample:~# ps -au                                                                                                                           
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND                                                                          
root          92  0.0  0.7  11560  3988 pts/1    Ss   21:48   0:00 bash                                                                              
root         172  0.0  0.6  13212  3272 pts/1    R+   21:51   0:00 ps -au 
root@tryit-ample:~# ps -aux                                                                                                                          
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND                                                                           
root           1  0.0  1.9  20616  9868 ?        Ss   21:48   0:00 /sbin/init                                                                        
root          74  0.0 15.1 1539372 75668 ?       Ssl  21:48   0:00 /usr/bin/lxd --group lxd --logfile=/var/log/lxd/lxd.log                           
root          92  0.0  0.7  11560  3988 pts/1    Ss   21:48   0:00 bash                                                                              
root         169  0.0  0.7  13408  3600 pts/1    R+   21:49   0:00 ps -aux

kill(1) - Linux manual page

kill 以及 pkill可以杀死进程,其实常用的kill -9是真正意义上的杀死进程,还有个很有好的kill -1 是结束进程,我没仔细看过,但猜想是给进程send a term signal。kill的用法是后面接pid, 以杀死进程对应的进程的pid。

可以看到-15杀死好像什么都没发生过,因为end a bash process确实没什么关系,bash进程结束,但terminal还在,bash只要自己处理一下自己即可,再ps一下,发现这个bash进程还在。但如果是-9, 不好意思,那个terminal也一起没了,因为立即杀死了bash进程。顺便提一下,这里也能发现用container的方便,terminal没有重启一下就是了,比重启电脑或着虚拟机实在是方便太多。

最后再说一下pkill,它是一个接受pattern的kill。它不需要pid,最后放一个常用的例子杀死某user的所有进程。这个命令配合-9是杀死所有进程的,所以要谨慎。我自己是经历过杀死所有进程然后调不出需要的background process的情况的。。。

root@tryit-valued:~# kill -15 92                                                                                                                   
root@tryit-valued:~#                                                                                                                                
root@tryit-valued:~# kill -9 92                                                                                                                                                                                                          
root@tryit-valued:~# pkill -15 -u `id -u root`                                                                                                      
root@tryit-valued:~# 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值