当前位置:  技术问答>linux和unix

请问如何实现用kill 1234杀不死自己写的程序?假定1234是自己进程ID

    来源: 互联网  发布时间:2016-10-06

    本文导语:  我用下面函数实现的,但不起作用。函数也调用了,因为我在系统日志中看到了Someone attemp to kill suServer!,但进程还是被杀死了。 请问还要做些什么工作? void sigterm_handler(int sig) { syslog(LOG_INFO, "Someone attemp to ...

我用下面函数实现的,但不起作用。函数也调用了,因为我在系统日志中看到了Someone attemp to kill suServer!,但进程还是被杀死了。
请问还要做些什么工作?

void sigterm_handler(int sig)
{
syslog(LOG_INFO, "Someone attemp to kill suServer!");
}

|

喔。明白,估计LZ这样写的:



#include 
#include 
#include 
#include 
#include 

void
sigterm_handler(int sig) {
syslog(LOG_INFO, "Someone attemp to kill suServer!");
}

int
main() {
if (signal(SIGTERM, sigterm_handler) == SIG_ERR) {
printf("signal error:n", strerror(errno));
return (-1);
}

// for (;;) {
pause();
// }
return (0);
}


|
if( msgrcv( msqid, &msg, 256, 1, 0 )==-1 ){
writeLog("msgrcv errorn");
exit(1);
}
-------------
信号发生时,中断了msgrcv调用,导致msgrcv返回-1,然后就执行了exit(1)了,程序自然退出了

如果不想退出,自己再加个判断
if( msgrcv( msqid, &msg, 256, 1, 0 )==-1 ){
writeLog("msgrcv errorn");
if( errno != EINTR ) exit(1);
}

|
syslog函数 不是用来防止被杀的 而是记录日志的。

直接kill pid的话 发送的SIGTERM信号 你在程序里要用代码捕获该信号 然后忽略掉
具体代码是怎么样的不懂 不做开发的。

比如常用的还有下面这样的
kill -9 pid 或者kill -KILL pid   对应的信号是SIGKILL
kill -1 pid 或者kill -HUP pid  对应的信号是SIGHUP

在命令行里输入 kill -l  查看信号一览

|

不是吧 楼主直接kill pid
这样是发送的SIGTERM信号吧。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如果一个server进程要fork许多子进程,但不等待子进程终止,也不希望子进程结束后处于僵进程状态直到父进程终止。请问可采用什么方法实现
  • 一个进程首先监听一个端口,等到有连接了就新开一个进程,让新进程来处理后面的通讯。请问母进程中已经打开了端口,子进程怎么来使用同一
  • 请问:子进程的数据可以传给父进程吗????
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • 请问:如果知道一个进程的pid 怎么得到他父进程的pid
  • 请问: 在要想删掉进程名为"xxx"的进程,在shell脚本中该写什么啊?
  • 请问已知进程的PID,通过什么函数可以得到进程的名字?
  • 请问fork子进程后,怎么修改子进程的所属用户。
  • 请问linux进程的哪些信息保存在内核里?哪些信息又保存在进程空间里?谢谢
  • 请问知道进程标识,能够结束该进程并回收所有资源么?
  • 请问父进程如何获得子进程的子进程的pid号?
  • help help busy!!! 请问如何让一个进程进入dead状态或者编程实现让一个进程进入dead状态
  • a 请问怎样查看服务器上的telnet进程,及远程telnet进程的ip
  • 请问子进程应该怎么调试。
  • 请问有关进程间通信的问题
  • 请问:linux下的子进程与线程的区别
  • 请问在 linux 下如何使用 execl() 调用另一个多进程的程序?
  • 请问前辈,线程和进程有什么区别啊?
  • 请问如何将某个进程设为系统服务?
  • 请问统计当前进程数应该使用什麽命令?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3