- 浏览: 4754235 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
bzhao:
你也应该可以这样:(not tested)./rbtunnel ...
在Bash脚本中怎么关闭文件描述符? -
bzhao:
如果有A进程原代码情况下,通过如下调用,把他的子进程继承关闭则 ...
在Bash脚本中怎么关闭文件描述符? -
Master-Gao:
楼主咋没分析下源码呢?
我使用过的Linux命令之dirname - 截取给定路径的目录部分 -
jiedushi:
tail -F 就可以吧
Linux下实时跟踪log4j日志文件的bash脚本 - 增强了tail -f的功能 -
java_is_new:
新手学习了,就是不明白为一个网卡配多个ip有什么用
我使用过的Linux命令之ifconfig - 网络配置命令
我使用过的Linux命令之kill - 终止进程/发送信号
本文链接:http://codingstandards.iteye.com/blog/847299 (转载请注明出处)
用途说明
kill命令用于终止指定的进程(terminate a process),是Unix/Linux下进程管理的常用命令。通常,我们在需要终止某个或某些进程时,先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令的另外一个用途就是向指定的进程或进程组发送信号(The command kill sends the specified signal to the specified process or process group),或者确定进程号为PID的进程是否还在。比如,有许多程序都把SIGHUP信号作为重新读取配置文件的触发条件。
在Bash中,kill命令是个Shell内建命令,为什么呢?原因有两个:第一个原因,Bash可以进行任务管理(&,Ctrl+Z,bg,fg,kill %jobid等指令),如果kill只是一个外部命令,那么在需要终止某个任务时就会很难办,因为任务是与终端关联的,反过来,如果kill命令是shell内建命令,就可以很方便的采用kill %jobid的形式去杀掉指定任务(似乎这个原因还不是很充分);第二个原因,是更加重要的,如果要杀掉某个进程还得来启动一个名为kill的子进程,那么在达到允许创建的进程数量上限时,连kill进程本身都无法创建了,还怎么来杀掉其他进程呢!(Kill is a shell builtin for two reasons: it allows job IDs to be used instead of process IDs, and, if you have reached the limit on processes that you can create, you don't have to start a process to kill another one.)
常用参数
格式:kill <pid>
格式:kill -TERM <pid>
发送SIGTERM信号到指定进程,如果进程没有捕获该信号,则进程终止(If no signal is specified, the TERM signal is sent. The TERM signal will kill processes which do not catch this signal.)
格式:kill -l
列出所有信号名称(Print a list of signal names. These are found in /usr/include/linux/signal.h)。只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
格式:kill -l <signame>
显示指定信号的数值。
格式:kill -9 <pid>
格式:kill -KILL <pid>
强制杀掉指定进程,无条件终止指定进程。
格式:kill %<jobid>
格式:kill -9 %<jobid>
杀掉指定的任务(使用jobs命令可以列出)
使用示例
示例一 kill命令是什么类型的命令
[root@new55 ~]# type -a kill
kill is a shell builtin
kill is /bin/kill
kill is /usr/bin/kill
[root@new55 ~]# help kill
kill: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
Send the processes named by PID (or JOBSPEC) the signal SIGSPEC. If
SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'
lists the signal names; if arguments follow `-l' they are assumed to
be signal numbers for which names should be listed. Kill is a shell
builtin for two reasons: it allows job IDs to be used instead of
process IDs, and, if you have reached the limit on processes that
you can create, you don't have to start a process to kill another one.
[root@new55 ~]#
示例二 列出所有信号名称
[root@new55 ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[root@new55 ~]#
#define SIGINT 2
#define SIGQUIT 3
#define SIGILL 4
#define SIGTRAP 5
#define SIGABRT 6
#define SIGIOT 6
#define SIGBUS 7
#define SIGFPE 8
#define SIGKILL 9
#define SIGUSR1 10
#define SIGSEGV 11
#define SIGUSR2 12
#define SIGPIPE 13
#define SIGALRM 14
#define SIGTERM 15
#define SIGSTKFLT 16
#define SIGCHLD 17
#define SIGCONT 18
#define SIGSTOP 19
#define SIGTSTP 20
#define SIGTTIN 21
#define SIGTTOU 22
#define SIGURG 23
#define SIGXCPU 24
#define SIGXFSZ 25
#define SIGVTALRM 26
#define SIGPROF 27
#define SIGWINCH 28
#define SIGIO 29
#define SIGPOLL SIGIO
/*
#define SIGLOST 29
*/
#define SIGPWR 30
#define SIGSYS 31
#define SIGUNUSED 31
/* These should not be considered constants from userland. */
#define SIGRTMIN 32
#define SIGRTMAX _NSIG
示例三 得到指定信号的数值
[root@new55 ~]# kill -l KILL
9
[root@new55 ~]# kill -l SIGKILL
9
[root@new55 ~]# kill -l TERM
15
[root@new55 ~]# kill -l SIGTERM
15
[root@new55 ~]#
示例四 init进程是不可杀的!
init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。
[root@new55 ~]# kill -HUP 1
[root@new55 ~]# kill -9 1
[root@new55 ~]# kill -KILL 1
系统依然在运行。
[root@new55 ~]#
示例五 先用ps查找进程,然后用kill杀掉
[root@new55 ~]# ps -ef|grep vim
root 3368 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
[root@new55 ~]# kill 3368
[root@new55 ~]# kill 3368
-bash: kill: (3368) - 没有那个进程
[root@new55 ~]#
示例六 杀掉指定任务
[root@new55 ~]# tail -f install.log
瀹夎 scim-bridge-gtk-0.4.5-9.el5.i386
瀹夎 scim-pinyin-0.5.91-16.el5.i386
瀹夎 scim-chewing-0.3.1-11.el5.i386
瀹夎 scim-chinese-standard-0.0.2-1.el5.i386
瀹夎 scim-tables-0.5.6-7.i386
瀹夎 scim-qtimm-0.9.4-5.i386
瀹夎 scim-tables-chinese-0.5.6-7.i386
瀹夎 fonts-chinese-3.02-12.el5.noarch
瀹夎 isdn4k-utils-3.2-56.el5.i386
瀹夎 stardict-2.4.5-5.i386
Ctrl+Z
[1]+ Stopped tail -f install.log
[root@new55 ~]# kill %1
[root@new55 ~]# kill %1
-bash: kill: (3379) - 没有那个进程
[1]+ 已终止 tail -f install.log
[root@new55 ~]#
问题思考
相关资料
【1】看看Linux 终止进程kill使用
【2】我的空间我作主 linux kill信号列表
【3】LinuxSense linux kill命令的使用
【4】太平洋电脑网 Linux的kill命令与信号控制
【5】forfuture1978 linux Kill多个进程
发表评论
-
在Linux用tar归档压缩文件时忽略某些文件和目录
2013-02-01 10:19 17053在Linux下,常用tar对文 ... -
使用nmap扫描服务器端口的一次操作
2012-11-01 17:00 15139使用nmap扫描服务器端口的一次操作 本文来自:http ... -
我使用过的Linux命令之wget - ooo
2011-09-14 13:10 0我使用过的Linux命令之wg ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:53 9149简明 Vim 练级攻略 http://coolshell.c ... -
推荐一篇学习Vim使用的好文:酷壳 - 简明 Vim 练级攻略
2011-09-09 12:49 1简明 Vim 练级攻略 http://coolshell.c ... -
我使用过的Linux命令之:(冒号) - 啥也不做(除了……)
2011-08-29 13:18 12101我使用过的Linux命令之: ... -
我使用过的Linux命令之date - 显示、修改系统日期时间
2011-08-25 09:21 41985我使用过的Linux命令之da ... -
我使用过的Linux命令之declare - 声明shell变量(不知道没关系、知道了就更好的内建命令)
2011-08-16 09:22 21831我使用过的Linux命令之declare - 声明shell变 ... -
我使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练
2011-08-11 09:31 28828我使用过的Linux命令之alias - 设置命令的别名,让 ... -
我使用过的Linux命令之ar - 创建静态库.a文件
2011-08-08 10:40 51934我使用过的Linux命令之ar - 创建静态库.a文件 本 ... -
我使用过的Linux命令之crontab - 设置例行任务(类似于Windows中的任务计划)
2011-08-04 22:26 9752我使用过的Linux命令之crontab - 设置例行任务(类 ... -
我使用过的Linux命令之chmod - 改变文件/目录的访问权限
2011-08-03 21:33 10706我使用过的Linux命令之chmod - 改变文件/目录的访问 ... -
我使用过的Linux命令之export - 设置或显示环境变量
2011-08-02 19:55 25441我使用过的Linux命令之export - 设置或显示环境变量 ... -
我使用过的Linux命令之wc - 统计文件行数、单词数或字节数
2011-07-26 10:50 29018我使用过的Linux命令之wc - 统计文件行数、单词数或字节 ... -
我使用过的Linux命令之groupdel - 删除群组
2011-07-22 22:13 9693我使用过的Linux命令之gr ... -
我使用过的Linux命令之ifconfig - 网络配置命令
2011-07-21 20:43 60552我使用过的Linux命令之ifconfig - 网络配置命令 ... -
我使用过的Linux命令之ll - 列出文件/目录的详细信息
2011-07-20 21:22 7209我使用过的Linux命令之ll ... -
我使用过的Linux命令之mkdir - 创建目录
2011-07-20 20:58 13686我使用过的Linux命令之mkdir - 创建目录 本文链 ... -
我使用过的Linux命令之perror - 解释错误代码
2011-07-18 20:29 25081我使用过的Linux命令之perror - 解释错误代码 ... -
我使用过的Linux命令之ping - 测试与目标主机的连通性
2011-07-16 10:46 26615我使用过的Linux命令之ping - 测试与目标主机的连通性 ...
相关推荐
在 Linux 中,可以使用 kill 命令来终止进程,例如:kill 12345。也可以使用 kill 命令来挂起进程,例如:kill -STOP 12345。 五、了解 Linux 的信号机制 Linux 中的信号是进程之间通讯的一种机制。信号可以由进程...
在实际使用中,首先需要通过`ps`命令找出要终止的进程的PID(进程ID),然后使用`kill`命令加上进程ID来发送信号。例如,如果发现进程345占用CPU资源过多,可以执行`kill 345`来结束它。 除了`kill`,还有一些其他...
在Linux系统中,kill命令用于终止进程或进程组。该命令可以发送指定的信号到指定的进程或进程组。 kill命令的基本用法 kill命令的基本语法为:`kill [ -s signal | -p ] [ -a ] [ -- ] pid ...` 其中,`pid`指定...
Linux 查找进程及终止进程操作的相关命令 Linux 操作系统中,查找和终止进程是非常重要的操作。为了帮助用户更好地管理进程,本文将详细介绍 Linux 中查找和终止进程的相关命令。 查找进程的命令:ps ps 命令是 ...
5. shell命令,如kill命令直接发送信号给目标进程。 信号的发送状态包括: - 递送:信号产生并立即尝试传递给目标进程。 - 阻塞:信号在递送过程中可能因为进程设置了信号屏蔽而暂时无法送达。 - 未决:信号已经...
通过本文的学习,您应该掌握了如何使用`ps`命令来查看Linux系统中的进程信息以及如何使用`kill`命令来终止进程。这两种命令是Linux系统管理中非常实用的工具,对于日常运维工作具有重要意义。正确地使用它们可以帮助...
`kill -9`常与`ps`命令结合使用,先通过`ps`找到进程ID(PID),然后执行`kill -9 PID`来终止进程。这个操作类似于直接断电关机,快速但可能导致数据丢失或系统不稳定。 2. `kill -1`:这是一个信号重载或者叫...
使用 kill 命令可以结束进程的执行,并且可以使用不同的信号来控制进程的终止方式。同时,我们也可以使用 ps 命令来查看进程树结构和当前运行的进程信息。了解这些知识点可以帮助我们更好地管理和控制 Linux 进程。
- **进程控制**: 包括启动、暂停、继续和终止进程等操作。常见的命令有 `ps`, `top`, `kill` 和 `nice` 等。 - **前台和后台进程**: 进程可以在前台或后台运行。前台进程会占用当前终端窗口,而后台进程则不会。...
- `kill`/`pkill`:发送信号给进程,终止或暂停进程。 - `nohup`:在用户退出后继续运行命令。 6. **网络和文件传输**: - `ping`:检查网络连通性。 - `curl`/`wget`:从网络下载文件。 - `scp`/`rsync`:...
### Linux中的kill命令详解 #### 一、概述 在Linux操作系统中,`kill`命令是一项极为重要的工具,用于管理和控制正在运行的进程。通过发送不同的信号给目标进程,`kill`命令可以实现对进程的终止、暂停、继续执行...
- **kill**:终止进程。 - `kill <pid>`:发送信号给进程ID为`<pid>`的进程。 - **ifconfig**:配置网络接口。 - `ifconfig eth0 up`:激活eth0网卡。 - **netstat**:显示网络连接信息。 - `netstat -tuln`:...
例如,当你发现一个进程(如`find`命令)运行时间过长,你可以首先用`ps`命令找到它的进程ID(PID),然后使用`kill PID`来终止它。在示例中,进程ID是345,所以命令是`kill 345`。 如果一个进程挂死或者无法响应`...
Linux是世界上最广泛使用的开源操作系统之一,其核心在于命令行界面,通过各种命令来管理系统、文件和进程。本文将深入探讨Linux命令全集中的关键知识点,帮助用户更好地理解和使用Linux。 1. **基础命令** - `ls`...
**步骤三:终止 CRS 进程并重启节点** 确保所有 CRS 相关进程都被杀死,并重启机器以确保系统状态的一致性。 - `ps -ef | grep css/crs/evm` - `kill -9 <processid>` - 重启节点 **步骤四:清理临时文件** 删除...
kill 命令的工作原理是,向 Linux 系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。 应用实例一: * 强行中止(经常使用杀掉)一个进程标识号为 324 ...
- **杀死进程**: 使用 `kill` 命令可以终止特定进程,例如 `kill pid` 可以终止指定进程ID的进程。 - **后台运行进程**: 使用 `&` 符号可以让进程在后台运行,例如 `command &`。 #### 6. 端口命令 - **查看端口**:...
Linux kill 命令参数及用法详解 Linux kill 命令是 Linux ...Linux kill 命令的工作原理是,向 Linux 系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。
例如,使用 `kill -9 1234` 命令可以强制终止进程 1234。 killall 命令用于终止多个进程,提供了批量终止进程的功能。killall 命令的基本格式为:`killall [选项] 名称`,其中选项可以是: * -i:交互式地询问用户...