shell基本命令教程

查看运行的进程,进程id,运行时间,占用内存,线程,结束进程(三)kill、killall结束和批量结束程序;结束终端

2019-11-20 23:05:23 admin 1393

一、Linux查询进程和结束进程,kill

1、查询任务

1)ps -ef |grep java ##查看到是4394

2)kill[参数][进程号]

   kill -9 4394 ##-9可以彻底删除

kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程

二、使用killall 

killall java 

killall -9 java #彻底删除

作用: 用于结束进程,但可以直接使用进程的名字而不是进程标识号

语法: killall [选项] name

常用选项:

-HUP(1):重跑进程
-KILL(9) :强制杀死进程
-TERM(15) :结束进程
-l:列出所有可用的信号名称

三、批量结束任务

1、ps -ef | grep chrome|awk '{print $2}' | xargs kill -9

其中chrome为查询进程关键词

2、杀死当前用户的所有线(进)程

pkill -u username
killall -u username

ps -ef | grep ^username |awk '{print$1}' | xargs kill -9

四、通过杀掉主进程,杀掉任务,或者杀掉某个登录终端(比如假死的)

首先在一个终端里启动进程如下图:

[chenfj@login12 md1]source /appsnew/source/cuda-9.2.sh

[chenfj@login12 md1]source /appsnew/source/intel2019.sh

[chenfj@login12 md1]source /appsnew/mdapps/amber18-intel2019-cuda9.2/amber.sh

[chenfj@login12 md1]$ mpirun -np 8  pmemd.MPI -O -i md.in  -o ${SLURM_JOB_ID}md32.out -p 1tcew.prmtop -c den.rst -r ${SLURM_JOB_ID}md32.rst -x ${SLURM_JOB_ID}md32.mdcrd 

图片关键词

在另一个终端查看运行的任务:

[root@login12 ~]#  ps -ef |grep chenfj

图片关键词

黄色的箭头为子进程,由父进程272987(红色箭头)派生出来的

红色箭头(进程272987)由父进程272986(蓝色箭头,Intel的hydra_pmi_proxy代理)派生出来的--杀掉272987或者272986有可能会杀掉部分的进程,造成进程存留: kill 272986;kill 272987

蓝色箭头进程272986,由主进程272981(白色箭头)派生来的--杀掉主进程就可以杀掉所有的进程 kill 27298

图片关键词

主进程272981(白色箭头)270317 由sh守护进程派生出来的--所以我们杀掉270317(270316)以后得进程终端就会退出

图片关键词

首页
资源&收费
集群
成果
问答