반응형
Ctrl + c와 Ctrl + z는 리눅스에서 프로세스를 제어하는 데 사용하는 두 가지 중요한 단축키입니다. 두 명령 모두 셸에서 실행 중인 프로세스에 영향을 미치지만, 그 작동 방식은 다릅니다. 여기서는 두 단축키의 차이점과 사용 사례를 비교하여 설명하겠습니다.
1. Ctrl + c: 프로세스 강제 종료
Ctrl + c는 SIGINT(interrupt signal)를 보내어 현재 실행 중인 프로세스를 강제 종료합니다. 이 신호는 프로세스에게 작업을 즉시 중단하도록 지시하며, 프로그램이 더 이상 실행되지 않도록 종료시킵니다.
작동 방식:
- 실행 중인 프로세스에 SIGINT(인터럽트 신호)를 보내서 즉시 프로세스를 종료합니다.
- 중지된 프로세스는 더 이상 메모리에서 실행되지 않으며, 종료 후에는 다시 복구할 수 없습니다.
- 일반적으로 잘못된 명령어나 무한 루프에 빠진 프로그램을 종료할 때 사용됩니다.
사용 예시:
$ ping google.com # 무한히 실행 중인 ping 명령어
Ctrl + c # ping 명령어를 강제로 종료

2. Ctrl + z: 프로세스 일시 중단
Ctrl + z는 SIGTSTP(stop signal)를 보내어 현재 실행 중인 프로세스를 일시 중단(suspend)합니다. 일시 중단된 프로세스는 백그라운드로 보내져 중지 상태로 대기하게 됩니다. 사용자는 필요에 따라 이 프로세스를 다시 실행하거나 완전히 종료할 수 있습니다.
작동 방식:
- 실행 중인 프로세스에 SIGTSTP(중지 신호)를 보내서 해당 프로세스를 백그라운드에서 일시 중지합니다.
- 중지된 프로세스는 시스템 메모리에 남아 있으며, 사용자가 다시 시작할 때까지 실행되지 않습니다.
fg명령을 사용하여 프로세스를 포그라운드로 복귀시켜 다시 실행하거나,bg명령을 사용해 백그라운드에서 계속 실행할 수 있습니다.
사용 예시:
$ nano myfile.txt # 텍스트 파일 편집 중
Ctrl + z # 편집을 중지하고 셸로 돌아감
$ fg # 중지된 nano 프로세스를 다시 포그라운드에서 실행
Ctrl + c와 Ctrl + z의 주요 차이점
| 항목 | Ctrl + c |
Ctrl + z |
|---|---|---|
| 프로세스에 보내는 신호 | SIGINT (인터럽트) | SIGTSTP (중지) |
| 프로세스 상태 | 완전히 종료됨 | 일시 중단됨 (백그라운드에서 대기) |
| 메모리에서의 존재 여부 | 종료 후 메모리에서 사라짐 | 메모리에 유지됨 |
| 다시 실행 가능 여부 | 다시 실행할 수 없음 | fg 또는 bg 명령으로 다시 실행 가능 |
| 사용 사례 | 무한 루프나 잘못된 명령 강제 종료 | 일시적으로 프로세스 중단 후 복귀 필요 |
상황별 사용 예시
- 프로그램 강제 종료 필요시: 예를 들어, 사용자가 실수로 잘못된 명령을 실행했거나 무한 루프에 빠진 프로그램을 종료하려면 Ctrl + c가 적합합니다.
- 작업을 일시 중단하고 싶을 때: 만약 현재 작업 중인 프로그램을 잠시 중단하고 셸로 돌아가 다른 작업을 하고 싶다면 Ctrl + z를 사용합니다. 이후에 해당 작업을 재개할 수 있습니다.
정리
Ctrl + c: 현재 실행 중인 프로세스를 즉시 종료하는 데 사용됩니다. 실행 중인 작업이 더 이상 필요 없거나 잘못된 경우 주로 사용됩니다.Ctrl + z: 프로세스를 일시 중단하고 나중에 재개할 수 있도록 백그라운드로 보냅니다. 프로세스를 잠시 중단하고 다른 작업을 해야 할 때 유용합니다.
이 두 단축키는 리눅스에서 실행 중인 프로세스를 관리하는 기본적인 방법을 제공하며, 상황에 맞게 적절히 사용하여 시스템에서 효율적으로 작업을 처리할 수 있습니다.
'리눅스 > 리눅스 기초' 카테고리의 다른 글
| 리눅스 운영체제는 모든 것이 파일로 구성 (2) | 2024.10.23 |
|---|---|
| 터미널을 초기화, "reset" (2) | 2024.10.22 |
| [ 리눅스 셸] 키보드 입력이 안 되는 경우 (2) | 2024.10.20 |
| [리눅스 셸] 커맨드 라인 편집 (3) | 2024.10.19 |
| 터미널과 셸 (5) | 2024.10.18 |