美文网首页
检查进程的存在的几种方式

检查进程的存在的几种方式

作者: 王小宝wy | 来源:发表于2016-11-24 09:48 被阅读0次
    1. wait()系统调用.当调用进程的任意子进程终止时,会返回,由此可判断子进程是否终止.wait系统调用存在以下几个缺点:
    • wait系统调用无法等待某个特定子进程,只能按顺序等待下一个子进程的终止+ 而且wait系统调用始终保持阻塞状态,即如果没有子进程终止的话,会一直阻塞下去;
    • wait只能发现已经终止的子进程,对于那些因为SIGSTOP,SIGTTIN停止的进程或者已停止但收到SIGCONT信号而恢复的子进程无能为力.NOTE:终止和停止不一样> 如果实际使用情况包含以上的某个缺点,也可以使用waitpid系统会调用
    1. 信号量和排它文件锁:如果被监控进程持续持有某一信号量或文件锁,那么如果能够获取到信号量或文件锁,则证明被监控进程已经终止
    2. 利用管道和FIFO之类的IPC通道:让被监控进程在自身生命周期内持有管道或通道写操作文件描述符,让监控进程持有管道或通道读操作文件描述符,当管道或通道写入端关闭的时候,就证明被监控进程已经终止
    3. /proc/PID:如果进程存在,则必然会有/proc/${PID}目录

    相关文章

      网友评论

          本文标题:检查进程的存在的几种方式

          本文链接:https://www.haomeiwen.com/subject/tbrbpttx.html