殭屍程式和孤兒程式
孤兒程式
概念
若子程式的父程式已經死掉,而子程式還存活著,這個程式就成了孤兒程式。
為了保證每個程式都有一個父程式,孤兒程式會被init程式領養,init程式成為了孤兒程式的養父程式,當孤兒程式退出之後,由init程式完成對孤兒程式的回收。
//孤兒程式
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
//建立子程式
pid_t pid = fork();
if(pid<0) //fork失敗的情況
{
perror("fork error");
return -1;
}
else if(pid>0)//父程式
{
sleep(5);
printf("father: [%d], pid==[%d], fpid==[%d]\n", pid, getpid(),getppid());
}
else if(pid==0) //子程式
{
printf("child: pid==[%d], fpid==[%d]\n", getpid(), getppid());
sleep(20);
printf("child: pid==[%d], fpid==[%d]\n", getpid(), getppid());
}
return 0;
}
殭屍程式
概念
若子程式死了,父程式還活著, 但是父程式沒有呼叫wait或waitpid函式完成對子程式的回收,則該子程式就成了殭屍程式。
解決方案
由於殭屍程式是一個已經死亡的程式,故不能使用kill命令將程式殺死;
可以通過殺死父程式的方法消除殭屍程式:
殺死其父程式,這個殭屍程式會被init程式領養,由init程式完成對殭屍程式的回收。
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
//建立子程式
pid_t pid = fork();
if(pid<0) //fork失敗的情況
{
perror("fork error");
return -1;
}
else if(pid>0)//父程式
{
sleep(100);
printf("father: [%d], pid==[%d], fpid==[%d]\n", pid, getpid(),getppid());
}
else if(pid==0) //子程式
{
printf("child: pid==[%d], fpid==[%d]\n", getpid(), getppid());
}
return 0;
}
相關文章
- 殭屍程式,孤兒程式
- Perl程式:殭屍程式和孤兒程式
- 子程式、孤兒程式,殭屍程式, init程式
- Go Exec 殭屍與孤兒程式Go
- PHP 多程式之孤兒和殭屍簡單講解PHP
- UNIXC002 程式資源的回收、孤兒程式和殭屍程式
- 殭屍程式,孤兒程式,wait,exit,execl等函式使用要點AI函式
- 從一道面試題來學習前臺程式和後臺程式、孤兒程式和殭屍程式面試題
- linux系統程式設計之程式(三):程式複製fork,孤兒程式,殭屍程式Linux程式設計
- SCP使用SIGSTOP後臺執行並簡單討論孤兒程式殭屍程式
- fork和殭屍程式
- 殭屍程式
- 什麼是殭屍程式,如何找到並殺掉殭屍程式?
- Linux 殭屍程式Linux
- 【系統】 殭屍程式
- 殺死殭屍程式
- Linux中殭屍程式是什麼意思?怎麼檢視殭屍程式?Linux
- 檢視 Linux 殭屍程式Linux
- Linux殭屍程式處置Linux
- Linux 中殭屍程式詳解Linux
- Linux 系統中殭屍程式Linux
- Linux如何殺掉殭屍程式Linux
- 檢視並殺死殭屍程式
- 關於LINUX殭屍程式的出現和原理Linux
- Linux系統殭屍程式詳解Linux
- Linux程式管理、程式建立、執行緒實現、殭屍程式Linux執行緒
- 什麼是殭屍程式以及如何處理
- JaCoCo助您毀滅線上殭屍程式碼
- Linux系統程式設計——特殊程式之孤兒程式Linux程式設計
- 孤兒程式與終端的關係
- 系統中出現大量不可中斷程式(D)和殭屍程式(Z)怎麼辦?
- Linux 效能優化之 CPU 篇 ----- 殭屍程式Linux優化
- 案例:系統中出現大量不可中斷程式(D)和殭屍程式(Z)怎麼辦?
- 物聯網教程Linux系統程式設計——特殊程式之殭屍程式Linux程式設計
- mysql連線池爆滿,釋放程式長連線殭屍程式MySql
- hp-unix 殭屍程式導致系統崩潰
- Python 植物大戰殭屍程式碼實現(2):植物卡片選擇和種植Python
- iOS殭屍物件之研究iOS物件