시스템에서 생성 한 프로세스를 종료 할 수 있습니까? 지금까지 내가 아는 한 System은 fork() 함수를 사용하여 새 프로세스를 작성합니다. 나는 (시스템을 호출하기 전에 그것을 fork했다.) 프로세스의 실행 시간을 추적하고 실행 제한 시간을 초과하면 그것을 죽이고 싶다. 주 프로세스로 생성 된 자식을 죽이면 system()에 의해 생성 된 자식도 죽게됩니까?시스템에 의해 생성 된 C++ 킬링 프로세스 && 실행 시간 제한
이것은 실제 코드가 아니지만 내가 무슨 말을하고 있는지 알 수 있습니다.
int pid = fork();
if(pid == 0)
{
system("./veryLongProgram");
}
else
{
// calculate time elapsed and kill on long execution time
}
CPU 시간 제한을 사용할 수는 있지만 내 자식 프로세스가 잠자기하는 것을 원하지 않는 경우도 좋습니다. 만약 그렇다면 그것은 아주 오랫동안 그러한 상태에 머물러있을 수 있습니다. 수면, 일시 정지 또는 의도적으로 불리는 프로그램에 의해 호출 된 것을 방해 할 수 있습니까? 그것은 이상적 일 것입니다. 아니면 내 프로세스가 잠을 자고 있는지 확인할 수 있습니다 (이 경우에는 의도적으로 수행했는지 확인하고 인쇄 작업이 중단되었거나 일시 중지되지 않았는지 확인해야합니다).