捕获by黑色暗药,捕获蛇夫总裁

test.c

# include stdio.h # includesignal.hvoidint _ handler ; intmainintargc,char ** argv ) sigset ) sigint,handler ); printfprocess_PID=[%d]\n ‘,getpid ); wile1; 返回0; }void int_handler ) printf ) ‘ getasigintsignal! \n ‘; } SIGINT )程序中止信号在用户输入INTR字符通常为Ctrl C )时发出。

gcc test.c -o test可执行程序:

按./testctrlc键or kill -2 1234、kill -SIGINT 1234 ),程序不结束,打印输出Get a SIGINT signal! 请参阅。

可以使用Ctrl \退出。 信号品质)。

//

信号函数

# includesignal.htypedefvoid * sighandler _ t ) ) int; sighandler_tsignalintsignum,sighandler_t handler ); 第一个参数signum :指示要处理的信号的类型,可以采用除了SIGKILL和SIGSTOP之外的任何信号。  

第二个参数handler :描述与信号相关的操作。 可以有以下三个值。

1) SIG_IGN

这个符号表示忽略这个信号。

# include stdio.h # includesignal.hint main int argc,char *argv[] ) signal ) sigint,SIG_IGN ); wile1; 返回0; 按Ctrl C键会忽略信号,因此程序不会结束。

)2) SIG_DFL

此符号表示系统将恢复对信号的默认处理。 不写这个处理函数在缺省情况下也执行系统的缺省操作。

# include stdio.h # includesignal.hint main int argc,char * argv [ ] ) sigint,SIG_DFL ); wile1; 返回0; }此时,您可以按CTRL C键结束进程。 将signalsigint,SIG_DFL ); 去掉这句话,效果是一样的

)3) sighandler_t型函数指针

如上所述。

//

kill-sendasignaltoaprocessexamples

基尔-9-1

Kill all processes you can kill .

kill-l 11 translate number 11 intoasignalname.kill-l//kill-l? 是什么? 是什么? listtheavailablesignalchoicesinanicetable.kill 12354323413453 sendthedefaultsignal,SIGTERM,to all those processes .发送信号SIGTERM

kill -s TERM 4589

kill -s 15 4589

kill -n TERM 4589

kill -n 15 4589

kill -15 4589 //建议

kill -TERM 4589 //推荐

kill -SIGTERM 4589

过程中,SIGTSTP 信号量20: Ctrl Z )和SIGKILL 信号量9 )信号不可捕获或忽略。 其他各种信号由进程捕获和处理。

ps -aux

ps -ef

ps -ef | grep test

用名字杀死进程:

基尔氏试验

pkill test

基什尔和菲尔很相似,但如果流程名称不完整,基什尔会报告错误。 pkill只需提供部分进程名称就可以终止进程。

pkill tes :ok

kill all tes :错误

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注