zoukankan      html  css  js  c++  java
  • 利用信号处理技术消灭僵尸进程;

    //利用信号处理技术消灭僵尸进程;
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <signal.h>
    #include <sys/types.h>

    void read_childproc(int sig)
    {
    int status;
    pid_t id=waitpid(-1,&status,WNOHANG);
    if(WIFEXITED(status))
    {
    printf("Removed proc id:%d ",id);
    printf("child send:%d ",WEXITSTATUS(status));
    }
    }

    int main(int argc, char *argv[])
    {
    pid_t pid;
    struct sigaction act;
    act.sa_handler=read_childproc;
    sigemptyset(&act.sa_mask);
    act.sa_flags=0;
    sigaction(SIGCHLD,&act,0);

    pid=fork();

    if(pid==0)/*子进程执行区域*/
    {
    puts("Hi! I'm child process!!");
    sleep(10);
    return 12;
    }

    else{/*父进程执行区域*/
    printf("Child proc id:%d ",pid);
    pid=fork();
    if(pid==0)
    {
    puts("Hi ! I'm child process");
    sleep(10);
    exit(24);
    }
    else
    {
    int i;
    printf("Child proc id:%d ",pid);
    for(i=0;i<5;i++)
    {
    puts("wait....");
    sleep(5);
    }
    }
    }
    return 0;
    }

  • 相关阅读:
    pagefile.sys
    Oracle数据库同义词
    oracle临时表
    修改Oracle并行度
    Oracle 反键索引/反向索引
    Ajax基础2
    DOM高级
    面向对象--高级
    面向对象---中级
    面向对象-初级
  • 原文地址:https://www.cnblogs.com/shiheyuanfang/p/14393339.html
Copyright © 2011-2022 走看看