Vue.js를 개발할 때 yarn run dev 또는 npm run dev 명령어를 실행하면, 로컬에서 개발 서버가 실행됩니다. 하지만 실수로 Control + Z (^Z)를 눌러 suspended(정지됨) 상태가 되면, 터미널에서 다시 실행하거나 정상적으로 종료하는 방법이 필요합니다.
이 글에서는 Mac에서 Vue.js 개발 서버가 Suspended 상태가 되었을 때 해결하는 4가지 방법을 소개합니다.
✅ Suspended 상태란?
Suspended(정지됨) 상태란?
터미널에서 yarn run dev 실행 중 Control + Z 키를 눌렀을 때, 실행 중이던 프로세스가 중지(Suspended)되고 백그라운드로 이동하는 상태를 말합니다.
이 상태에서는 서버가 멈춘 것처럼 보이지만, 여전히 프로세스가 살아있습니다. 이를 해결하기 위해 다시 실행하거나 종료하는 방법을 알아보겠습니다.
🔥 해결 방법 1: fg를 사용해 다시 실행 후 종료
1.1 정지된 프로세스를 다시 실행
터미널에서 아래 명령어를 입력하면, 중지된 프로세스를 다시 실행할 수 있습니다.
fg
이후 Control + C (^C)를 눌러 정상 종료합니다.
📝 설명:
fg(foreground) 명령어는 suspended 상태에서 프로세스를 다시 실행합니다.
🔥 해결 방법 2: 백그라운드 실행 후 종료
2.1 정지된 프로세스를 백그라운드에서 실행
bg
이 명령어를 입력하면, 중지된 프로세스가 백그라운드에서 실행됩니다.
2.2 실행 중인 백그라운드 작업 확인
jobs -l
이 명령어를 입력하면, 백그라운드에서 실행 중인 프로세스 목록이 표시됩니다.
[1] + 12345 Suspended yarn run dev
위에서 12345는 프로세스 ID(PID)입니다.
2.3 특정 프로세스 종료
kill 12345
또는 아래 명령어를 사용해 백그라운드 프로세스를 종료할 수도 있습니다.
kill %1
📝 설명:
%1은 jobs 명령어에서 [1]로 표시된 백그라운드 작업의 번호입니다.
🔥 해결 방법 3: 강제 종료 (kill -9 사용)
만약 fg 또는 kill로도 프로세스가 종료되지 않는다면, 강제로 종료하는 방법이 있습니다.
3.1 실행 중인 프로세스 ID(PID) 찾기
ps aux | grep yarn
이 명령어를 실행하면 실행 중인 yarn run dev의 프로세스 ID(PID)를 찾을 수 있습니다.
user 12345 0.0 0.1 2458908 8000 s001 S+ 10:34AM 0:02.34 node /path/to/yarn run dev
위에서 12345가 프로세스 ID입니다.
3.2 해당 PID를 강제 종료
kill -9 12345
📝 설명:
kill -9는 강제 종료 명령어로, 해당 프로세스를 즉시 중단시킵니다.
🔥 해결 방법 4: 터미널을 닫고 새로 열기
만약 위 방법으로도 해결되지 않는다면, 가장 간단한 방법은 터미널을 닫고 다시 여는 것입니다.
- 현재 실행 중인 터미널을 닫습니다.
- 새 터미널을 열고 다시 yarn run dev를 실행합니다.
이 방법을 사용하면, 기존에 중지된 프로세스가 자동으로 종료되면서 새로운 프로세스로 실행됩니다.
🚀 최종 정리: 어떤 방법을 선택할까?
해결 방법명령어추천 상황
Suspended 상태에서 다시 실행 후 종료 | fg → Control + C | 가장 일반적인 해결책 |
백그라운드에서 실행 후 종료 | bg → jobs -l → kill %1 | 여러 개의 프로세스가 있을 때 |
프로세스 ID로 강제 종료 | `ps aux | grep yarn→kill -9 <PID>` |
터미널 닫고 재시작 | 터미널 종료 후 다시 실행 | 모든 방법이 안될 때 |
💡 가장 추천하는 방법:
- fg로 복구한 후 Control + C로 종료하는 것이 가장 빠르고 안정적인 해결책입니다.
- 하지만 프로세스가 종료되지 않는다면 kill -9 <PID>를 사용하세요.
이제 Vue.js 개발 서버가 suspended 상태에 빠졌을 때 당황하지 말고, 위 방법을 활용하여 빠르게 해결해보세요! 🚀
#VueJS #MacOS #TerminalCommands #Debugging #DevTips #FrontendDev #WebDevelopment #JavaScript
'개발라이프' 카테고리의 다른 글
SQLAlchemy: bulk_insert_mappings와 connection.execute 비교 및 성능 분석 (0) | 2025.01.16 |
---|---|
Jupyter Notebook에서 ModuleNotFoundError 해결 방법 (1) | 2024.12.20 |
bfloat16 (Brain Floating Point 16-bit) (1) | 2024.12.20 |
머신러닝에서 데이터 라벨링이란? (0) | 2024.12.18 |
수학에서 자주 사용하는 기호와 뜻: 완벽 정리 (0) | 2024.12.16 |