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