勇敢心资源网

当前位置:首页 > 百科 / 正文

kill(IT行业语)

(2020-04-16 13:55:13) 百科

kill(IT行业语)

说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作,若没有指定,预设是送出终止 (TERM) 的信号

基本介绍

  • 中文名:kill
  • 命令名称:kill
  • 使用许可权:所有使用者
  • 实质:linux命令提示符

Linux

linux命令提示符
命令名称:kill
使用许可权:所有使用者
使用方式:
kill [-s sigspec | -n signum | -sigspec] pid | jobspec … or kill -l [sigspec]
说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作,若没有指定,预设是送出终止 (TERM) 的信号
-s (signal) : 其中常用的讯号有 HUP (1),KILL (9),TERM (15),分别代表着重跑,砍掉,结束; 详细的信号可以用 kill -l (见下结果,可用数字带入)
-p : 印出 pid,并不送出信号
-l (signal) : 列出所有可用的信号名称
这个就是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
一般範例:
将 pid 为 323 的执行绪砍掉 (kill) :
kill -9 323
将 pid 为 456 的执行绪重跑 (restart) :
kill -HUP 456
一般来讲,查询PID的命令是
ps -ef | grep yum(表示查询的是yum的PID,根据查询的东西不同而异)。
举一个实际的例子:
比方说,fedora的线上更新命令yum锁锁住了,常见的提示是
Existing lock /var/run/yum.pid: another copy is running as pid 19698.
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
Another app is currently holding the yum lock; waiting for it to exit…
…….
这里就没必要使用ps命令了,因为已经知道PID就是19698这个值了,因此不用在查询。
这时就要使用kill将19698的进程杀死。其中的19698就是PID。
所以在命令行内输入:
kill -9 19698
就能成功的杀死这个进程。
kill的改进用法如下:
一、把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
还是嫌打字多?
二、使用pgrep:
一看到pgrep首先会想到什幺?没错,grep!pgrep的p表明了这个命令是专门用于进程查询的grep。
$ pgrep firefox
1827
看到了什幺?没错火狐的PID,接下来又要打字了:
$kill -s 9 1827

VB语句

kill({档案地址(可不填)}+档案名称)
语句作用:删除档案
範例:kill "1.ini"

C函式

kill(传送信号给指定的进程,使用 kill -l 命令可查看linux系统中信号。)
相关函式 raise,signal
表头档案
#include<sys/types.h>
#include<signal.h>
定义函式 int kill(pid_t pid,int sig);
函式说明
kill()可以用来送参数sig指定的信号给参数pid指定的进程。参数pid有几种情况:
pid>0 将信号传给进程识别码为pid 的进程。
pid=0 将信号传给和当前进程相同进程组的所有进程
pid=-1 将信号广播传送给系统内所有的进程
pid<0 将信号传给进程组识别码为pid绝对值的所有进程
参数sig代表的信号:
Signal
Description
SIGABRT
由调用abort函式产生,进程非正常退出
SIGALRM
用alarm函式设定的timer逾时或setitimer函式设定的interval timer逾时
SIGBUS
某种特定的硬体异常,通常由记忆体访问引起
SIGCANCEL
由Solaris Thread Library内部使用,通常不会使用
SIGCHLD
进程Terminate或Stop的时候,SIGCHLD会传送给它的父进程。预设情况下该Signal会被忽略
SIGCONT
当被stop的进程恢复运行的时候,自动传送
SIGEMT
和实现相关的硬体异常
SIGFPE
数学相关的异常,如被0除,浮点溢出,等等
SIGFREEZE
Solaris专用,Hiberate或者Suspended时候传送
SIGHUP
传送给具有Terminal的Controlling Process,当terminal被disconnect时候传送
SIGILL
非法指令异常
SIGINFO
BSD signal。由Status Key产生,通常是CTRL+T。传送给所有Foreground Group的进程
SIGINT
由Interrupt Key产生,通常是CTRL+C或者DELETE。传送给所有ForeGround Group的进程
SIGIO
异步IO事件
SIGIOT
实现相关的硬体异常,一般对应SIGABRT
SIGKILL
无法处理和忽略。中止某个进程
SIGLWP
由Solaris Thread Libray内部使用
SIGPIPE
在reader中止之后写Pipe的时候传送
SIGPOLL
当某个事件传送给Pollable Device的时候传送
SIGPROF
Setitimer指定的Profiling Interval Timer所产生
SIGPWR
和系统相关。和UPS相关。
SIGQUIT
输入Quit Key的时候(CTRL+\)传送给所有Foreground Group的进程
SIGSEGV
非法记忆体访问
SIGSTKFLT
Linux专用,数学协处理器的栈异常
SIGSTOP
中止进程。无法处理和忽略。
SIGSYS
非法系统调用
SIGTERM
请求中止进程,kill命令预设传送
SIGTHAW
Solaris专用,从Suspend恢复时候传送
SIGTRAP
实现相关的硬体异常。一般是调试异常
SIGTSTP
Suspend Key,一般是Ctrl+Z。传送给所有Foreground Group的进程
SIGTTIN
当Background Group的进程尝试读取Terminal的时候传送
SIGTTOU
当Background Group的进程尝试写Terminal的时候传送
SIGURG
当out-of-band data接收的时候可能传送
SIGUSR1
用户自定义signal 1
SIGUSR2
用户自定义signal 2
SIGVTALRM
setitimer函式设定的Virtual Interval Timer逾时的时候
SIGWAITING
Solaris Thread Library内部实现专用
SIGWINCH
当Terminal的视窗大小改变的时候,传送给Foreground Group的所有进程
SIGXCPU
当CPU时间限制逾时的时候
SIGXFSZ
进程超过档案大小限制
SIGXRES
Solaris专用,进程超过资源限制的时候传送
返回值 执行成功则返回0,如果有错误则返回-1。
错误代码
EINVAL 参数sig 不合法
ESRCH 参数pid 所指定的进程或进程组不存在
EPERM 许可权不够无法传送信号给指定进程
範例
#include<unistd.h>
#include<signal.h>
#include<sys/types.h>
#include<sys/wait.h>
main()
{
pid_t pid;
int status;
if(!(pid= fork())){
printf(“Hi I am child process!\n”);
sleep(10);
return;
}
else{
printf(“send signal to child process (%d) \n”,pid);
sleep(1);
kill(pid,SIGABRT);
wait(&status);
if(WIFSIGNALED(status))
printf(“chile process receive signal %d\n”,WTERMSIG(status));
}
}
执行 sen signal to child process(3170)
Hi I am child process!
child process receive signal 6

防毒软体

KILL 网路防病毒系统(别名“ KILL 安全胄甲”)是冠群金辰公司旗下的企业级防病毒软体,可全面查杀计算机病毒、蠕虫、木马等恶意程式,保护用户网路範围内计算机系统环境安全。KILL 防病毒系统採用自主智慧财产权的防病毒引擎,依託美国 CA 公司强大的技术背景和国内雄厚的研发服务实力,在十几年的发展中,赢得了广大用户的普遍信任,其产品在政府、电信、金融、税务等各个领域都有着广泛的成功套用。
KILL 网路防病毒系统支持在 Windows 9x/ME/NT/2000/XP/2003/Vista 等平台上运行,同步支持微软 Windows 作业系统的各个版本。KILL 防病毒引擎荣获西海岸实验室( West Coast Labs )基于 Windows Vista 平台的 Checkmark 权威认证,属全球首家,确保在 Vista 平台上稳定运行;首批荣获国际病毒公告牌( Virus Bulletin ) Windows Vista 平台病毒查杀 VB100 认证,可 100% 查杀 Vista 系统上的流行病毒。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net
搜索
随机推荐

勇敢心资源网|豫ICP备19027550号