#include <iostream>
#include <unistd.h>
#include <cstdlib>
#include <sys/types.h>
#include <sys/stat.h>

int main(){
	pid_t pid = fork();
	if (pid>0) {
		//parent
		std::cout << "Started parent zombie factory PID" << pid;
	} else {
		setsid();
		std::cout << "Factory in the background \n";
		std::cout << "Background factory PID = " << getpid() << std::endl;
		for (int i = 0; i < 5; i++){
			pid_t child = fork();
			if (child == 0) {
				_exit(0);
			}
			sleep(1);
		}
		std::cout << "Created 5 zombies\n";
	}
	while (true) {
		sleep(1000);
	}
	return 0;
}
