smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal
smx 1823 1822 0 11:38 ? 00:00:00 gnome-pty-helper
smx 1824 1822 0 11:38 pts/0 00:00:02 bash
smx 1827 1 4 11:38 ? 00:26:28 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 1822 0 11:38 pts/1 00:00:00 bash
smx 1880 1619 0 11:38 ? 00:00:00 update-notifier
smx 11946 1824 0 21:41 pts/0 00:00:00 ps -ef
$ ps -aux
smx 1822 0.1 0.8 58484 18152 ? Sl 11:38 0:49 gnome-terminal
smx 1823 0.0 0.0 1988 712 ? S 11:38 0:00 gnome-pty-helper
smx 1824 0.0 0.1 6820 3776 pts/0 Ss 11:38 0:02 bash
smx 1827 4.3 5.8 398196 119568 ? Sl 11:38 26:13 /usr/lib/firefox-3.6.18/firefox-bin
smx 1857 0.0 0.1 6688 3644 pts/1 Ss 11:38 0:00 bash
smx 1880 0.0 0.6 41536 12620 ? S 11:38 0:00 update-notifier
smx 11953 0.0 0.0 2716 1064 pts/0 R+ 21:42 0:00 ps -aux
此时如果我想杀了火狐的进程就在终端输入:
$ kill -s 9 1827
其中-s 9 制定了传递给进程的信号是9,即强制、尽快终止进程。各个终止信号及其作用见附录。
1827则是上面ps查到的火狐的PID。
简单吧,但有个问题,进程少了则无所谓,进程多了,就会觉得痛苦了,无论是ps -ef 还是ps -aux,每次都要在一大串进程信息里面查找到要杀的进程,看的眼都花了。
改进1
:
把ps的查询结果通过管道给grep查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
$ ps -ef | grep firefox
smx 1827 1 4 11:38 ? 00:27:33 /usr/lib/firefox-3.6.18/firefox-bin
smx 12029 1824 0 21:54 pts/0 00:00:00 grep --color=auto firefox
这次就清爽了。然后就是
$kill -s 9 1827
还是嫌打字多?
改进2——使用pgrep
:
一看到pgrep首先会想到什么?没错,grep!pgrep的p表明了这个命令是专门用于进程查询的grep。
$ pgrep firefox
看到了什么?没错火狐的PID,接下来又要打字了:
$kill -s 9 1827
改进3——使用pidof:
看到pidof想到啥?没错pid of xx,字面翻译过来就是 xx的PID。
$ pidof firefox-bin
和pgrep相比稍显不足的是,pidof必须给出进程的全名。然后就是老生常谈:
$kill -s 9 1827
无论使用ps 然后慢慢查找进程PID 还是用grep查找包含相应字符串的进程,亦或者用pgrep直接查找包含相应字符串的进程PID,然后手动输入给kill杀掉,都稍显麻烦。有没有更方便的方法?有!
$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9
“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。
“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。
“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。
难道你不想抱怨点什么?没错太长了
知道pgrep和pidof两个命令,干嘛还要打那么长一串!
$ pgrep firefox | xargs kill -s 9
$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9
kill: No such process
有一个比较郁闷的地方,进程已经正确找到并且终止了,但是执行完却提示找不到进程。
其中awk '{print $2}' 的作用就是打印(print)出第二列的内容。根据常规篇,可以知道ps输出的第二列正好是PID。就把进程相应的PID通过xargs传递给kill作参数,杀掉对应的进程。
改进7
:
难道每次都要调用xargs把PID传递给kill?答案是否定的:
$kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`
没错,命令依然有点长,换成pgrep。
$kill -s 9 `pgrep firefox`
改进9——pkill:
看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。
$pkill -9 firefox
说明:"-9" 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 "-s 9",结果每次运行都无法终止进程。
改进10
——killall
:
killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。
$killall -9 firefox
附录:各种信号及其用途
kill-9发送SIGKILL信号将其终止,但是以下两种情况不起作用:a、该进程处于"Zombie"状态(使用ps命令返回defunct的进程)。此时进程已经释放所有资源,但还未得...
来自:
一只叫做Unix的猫
kill命令格式:kill-Signalpidpid是进程号,可以用ps命令查出signal是发送给进程的信号,默认参数下,kill发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行...
来自:
u010486679的专栏
想必很多时候我们会遇到,进程使用后,服务器没有释放改进程而开启新进程的情况。比如,java中,进程启动多个:当然,下面的worker和logwriter并没有错误,这里是演示:hadoop@hadoo...
来自:
傲娇的博客
今天在写脚本的时候遇到一个问题,需求是通过本机远程连接到其他服务器,杀掉之前提起的nmon进程,然后再返回本机 于是命令如下(以本机localhost为例): ssh localhost "ps -e
ps -auxw | grep resin | grep -v grep| awk '{print $2}'|-exec kill -9 {} \;为什么不能执行,说-exec没有这个命令,这我写错了
HOSTNAME=$1 FILEPATH=$2 FILENAME=$3 NAME=hadoop ssh $HOSTNAME -l $NAME cd $FILEPATH; nohup ./$FILEN
ps-ef|grepmonitor_psr.sh|grepiboss2|grepismp|grep-vgrep|awk{print$2}|xargskill-9 注*A. $2表示第2列,即进程号PI...
来自:
foxliucong的专栏
阅读目录为什么要用xargs,问题的来源 xargs是什么,和管道有什么不同 xargs的一些选项为什么要用xargs,问题的来源在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇...
来自:
vanturman的博客
背景:偶尔会遇到一些相同进程卡死的情况,监控不当的时候会影响应用,写个判断语句,定时监控,进程多的时候会自动清除#!/bin/bash#假设进程中同一包含akel关键字str=`ps-ef|grepa...
来自:
wen‘s blog
我在Windows系统上使用xshell,怎样才能把写完的脚本弄进去,下次更新时,敲一下命令就能执行上边的操作(我查看资料还需要给脚本添加权限)?下边常用的命令能否补充并优化下? 操作流程:用xshe
1)查看进程的方法: ps-ef 或者 psauxroot 15087 0.0 0.0 0 0? S 23:31 0:00[kworker/1:1]root 15219 0.0 0...
ps-aux|grepping6|cut-c9-15|xargskill-9这条命令用了管道的方式,|左边的输出作为右边的输入。ps-aux列出进程grepping6是找出上一步输出的进程中包含pi...
来自:
勤劳的小蜜蜂
kill所有java进程ps-ef|grepjava|grep-vgrep|awk'{print$2}'|xargs-pkill-9如果不需要询问,把xargs后面-p参数去掉Aix通过shell脚本...
来自:
cainiao的专栏
Xargs用法详解1. 简介 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:find /sbin -perm +700 |...
来自:
zhangfn2011的专栏
1.功能:xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。因为以空格作为分隔符,所以有一些文件名或者其他意义的名词内含有空格的时候...
来自:
Dablelv的博客专栏
ps-ef|grepmcfcm_st|grep-vgrep|cut-c9-15|xargskill-9 管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联...
来自:
叶子一哥
xargs-buildandexecutecommandlinesfromstandardinputxargs通常和xargs一起使用,能够解决许多问题~在使用find命令的-exec选项处理匹配到的...
来自:
小菜鸟的天地
操作系统(OperatingSystem,简称OS): 管理各种软硬件资源,是最复杂的软件。它处于硬件设备和应用程序的中间层,对下管理各种硬件设备,对上为所有应用程序的执行提供一个平台。主流操作...
来自:
W77_20的博客
经常需要Kill多个进程,这些进程包含共同的关键字,可以用一条命令Kill掉它们。psaux|grep"common"|cut–c9-15|xargskill–9管道符“|”用来隔...
来自:
forfuture1978的专栏
1、ps指令与kill配合: ps-ef|grepLOCAL=NO|grep-vgrep|cut-c9-15|xargskill-9 管道符“|”用来隔开两个命令,管道符左边命令的输出会...
来自:
lgh1117的专栏
日常工作中常用killpid或者kill-9pid来杀进程。批量杀进程$ps-fuoraprod|awk'{print$2}'|xargskill-9$ps-ef|grep$ORACLE_SID|gr...
来自:
peiyongbin的专栏
测试环境部署的时候经常需要重启,每次杀进程太麻烦,shell也不是很熟,同名的多个进程手动杀太麻烦了,google一个命令,分享下。os环境centos6.2 bashshell目的:一次杀死uwsg...
来自:
orangleliu 笔记本
今天编译mysql,启动发现提示:StartingMySQL/etc/init.d/mysqld:line159:kill:(21755)-Nosuchprocess去Google了一下,原来是用户权...
来自:
php程序员日志
在重启nginx容器后,报错:nginx:[alert]kill(11,1)failed(3:Nosuchprocess)原因:启动nginx服务未启动成功,可以重新启动启动nginx服务,或者:重新...
来自:
xiejunna的博客
今天编译mysql,启动发现 提示: StartingMySQL/etc/init.d/mysqld:line159:kill:(21755)-Nosuchprocess 去Google了一下,原来是...
来自:
looksky's blog
【问题描述】更改完nginx.conf文件后,执行/application/nginx/sbin/nginx-sreload命令重新加载配置文件,报以下错误信息:nginx:[alert]kill(1...
来自:
王玉Student的博客
nginx:[alert]kill(2094,1)failed(3:Nosuchprocess)重启nginx报错:意思是没有这样的进程,怀疑可能是没有启动nginx,whereisnginx#定位n...
来自:
一个有梦想的咸鸭蛋
[root@3f2e8e42d52f/]#nginx-sreloadnginx:[alert]kill(189,1)failed(3:Nosuchprocess) 杀死189进程,可是并没有[root...
来自:
design321的专栏
这个问题遇到不止一次,记下解决方法备忘。 运行稳定性脚本时框架崩溃,打印的堆栈信息如下: libcore.io.ErrnoException:killfailed:ESRCH(Nosuchproces...
来自:
风一样自由
如果你添加/修改默认网关时遇到这个问题。原因:你要添加的网关不在你主机所在的网段。解决方法:比如你要添加的网关是10.9.39.250但是本机没有10.9.39段的网卡sudorouteadd10.9...
来自:
吴普的部落格
问题: StartingMySQL/etc/init.d/mysql:line159:kill:(21755)-Nosuchprocess解决办法编辑mysqld:[root@linux115~]#...
来自:
zglin689的专栏
常规篇: 首先,用ps查看进程,方法如下:$ps-ef……smx 1822 1 011:38? 00:00:49gnome-terminalsmx 1823 18...
来自:
明明
环境信息:centos6.5问题描述:大数据集群HDFS的DataNode的一个节点down掉,去服务器查看,发现datanode节点还在,打算重新启动该节点的datanode,使用hadoop-da...
来自:
microGP的专栏
1.用ps查看进程pid ps-ef|grepphp-fpm2.杀掉进程 kill9333.查看进程并杀掉kill-s9 `ps-ef|grep-vgrep|grep'resignsign'|awk...
来自:
mengzuchao的专栏
kill-9发送SIGKILL信号将其终止,但是以下两种情况不起作用:(1)该进程处于”Zombie”状态(使用ps命令返回defunct的进程,僵尸进程)。此时进程已经释放所有资源,但还未得到其父进...
来自:
云深杂记
关闭进程的3个命令:kill、killall、pkillkill关闭进程:kill进程号#关闭单个进程killall和pkill命令用于杀死指定名字的进程通过信号的方式来控制进程:kill-l#列出所...
来自:
小白的进化之路
kill-9发送SIGKILL信号将其终止,但是以下两种情况不起作用:a、该进程处于”Zombie”状态(使用ps命令返回defunct的进程)。此时进程已经释放所有资源,但还未得到其父进程的确认。”...
memcached启动命令[quote]memcached-d-m10-uroot-l192.168.0.122-p11200-c256-P/tmp/memcached.pid[/quote]-d选项...
来自:
xly_971223的专栏
本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...
来自:
Lynn_Blog
这里的数据使用的是标准的can设备产生的can信号(扩展帧发送数据ID=0x11121181 Data=0x06 0x08)
信号的波形如图1所示,这里示波器的探头接的是CAN_H,探头的夹子...
来自:
minyuanxiani的专栏
在开发软件时,碰到了有一大批的dll需要加载,且这些dll中有隐式链接到其它dll情况.由于某些原因,不能将dll放入系统目录中也不能将他们放置在应用程序同一目录中.
为集中管理,将其放置到应用程序...
来自:
nscboy的专栏
基本功能1. 自定义标题栏。(标题栏不做任何功能)2. 有左右发送按钮。(这个只能自己和自己聊天哦,所以有左右发送按钮) (1)点击左边按钮发送按钮,在ListView的左侧显示。
来自:
To_be_Designer
前言在决定用这个标题之前甚是忐忑,主要是担心自己对AIDL的理解不够深入,到时候大家看了之后说——你这是什么玩意儿,就这么点东西就敢说够了?简直是坐井观天不知所谓——那样就很尴尬了。不过又转念一想,我...
来自:
lypeer的专栏
此处仅以VS2010为例,详细说明一下如何在VS环境下生成和使用C++的静态库与动态库。Qt下生成和使用静态和动态库后续再讲。
本文仅供初学者参考,如果有问题欢迎大家指正。
首先简单地理...
来自:
luyan的博客
问题场景描述整个项目通过Maven构建,大致结构如下:
核心Spring框架一个module spring-boot-base
service和dao一个module server-core
提供系统...
来自:
开发随笔
请在跟贴中注明站点名称,链接地址以及简要描述信息****************************************************名称:微软.NET快速入门官方网站地址:http...
来自:
似水年华
Tinker的配置
目前公司项目中使用Tinker作为热更新方案,由于Bugly的热更新是基于Tinker,并且提供了补丁的自动下载、合成、应用的功能以及补丁管理后台,所以集成了Bugly的...
来自:
Chay_Chan的博客
Signal
|
Description
|
Signal number on Linux x86
[
1
]
|
SIGABRT
|
Process aborted
|
SIGALRM
|
Signal raised by
alarm
|
SIGBUS
|
Bus error: "access to undefined portion of memory object"
|
SIGCHLD
|
Child process terminated, stopped (or continued*)
|
SIGCONT
|
Continue if stopped
|
SIGFPE
|
Floating point exception: "erroneous arithmetic operation"
|
SIGHUP
|
Hangup
|
SIGILL
|
Illegal instruction
|
SIGINT
|
Interrupt
|
SIGKILL
|
Kill (terminate immediately)
|
SIGPIPE
|
Write to pipe with no one reading
|
SIGQUIT
|
Quit and dump core
|
SIGSEGV
|
Segmentation violation
|
SIGSTOP
|
Stop executing temporarily
|
SIGTERM
|
Termination (request to terminate)
|
SIGTSTP
|
Terminal stop signal
|
SIGTTIN
|
Background process attempting to read from tty ("in")
|
SIGTTOU
|
Background process attempting to write to tty ("out")
|
SIGUSR1
|
User-defined 1
|
SIGUSR2
|
User-defined 2
|
SIGPOLL
|
Pollable event
|
SIGPROF
|
Profiling timer expired
|
SIGSYS
|
Bad
syscall
|
SIGTRAP
|
Trace/breakpoint
trap
|
SIGURG
|
Urgent data available on socket
|
SIGVTALRM
|
Signal raised by timer counting virtual time: "virtual timer expired"
|
SIGXCPU
|
CPU time limit exceeded
|
SIGXFSZ
|
File size limit exceeded
|