[shell] 프로세스 제어

TOC

프로세스 생성

새로운 프로세스를 생성하려면 fork() 시스템 호출을 사용합니다. 이를 통해 부모 프로세스는 자식 프로세스를 만들 수 있습니다. 자식 프로세스는 fork() 호출 이후에 실행을 시작하며, 부모 프로세스의 복사본과는 별도의 메모리 공간을 갖습니다. 이를 통해 다중 작업을 수행하는 데 유용합니다.

예시:

#include <stdio.h>
#include <unistd.h>

int main() {
    int pid = fork();
    if (pid == 0) {
        printf("이것은 자식 프로세스입니다.\n");
    } else {
       printf("이것은 부모 프로세스입니다.\n");
    }
    return 0;
}

프로세스 종료

프로세스를 종료하려면 exit() 시스템 호출을 사용합니다. 이를 통해 프로세스는 실행을 중단하고 운영 체제에 리소스를 반환합니다. 종료 코드를 지정하여 부모 프로세스에게 종료 상태를 전달할 수도 있습니다.

예시:

#include <stdlib.h>

int main() {
    // 프로세스 종료
    exit(0);
}

프로세스 중단 및 재개

프로세스를 중단하려면 kill 명령어를 사용하여 시그널을 보냅니다. 보통 SIGSTOP 시그널을 이용하여 프로세스를 일시 중지하고, SIGCONT 시그널을 이용하여 중단된 프로세스를 재개합니다.

예시:

# 프로세스 ID가 1234인 프로세스를 중단
kill -SIGSTOP 1234

# 중단된 프로세스를 재개
kill -SIGCONT 1234

프로세스 제어는 운영 체제와 관련된 복잡한 주제이며, 안정적이고 효율적인 시스템 운영을 위해 중요합니다.