리액트 애플리케이션을 백그라운드로 실행하기 위해 아래 커맨드를 입력했다.
$ yarn dev --host 0.0.0.0 --mode production &
정상적으로 실행될 것이라는 기대와 다르게 에러가 발생한다.
[5]+ Stopped (tty input) yarn dev --host 0.0.0.0 --mode production
원인이 무엇일까?
React 개발 서버(yarn dev)는 실행 중 터미널 입력을 필요로 하지만 이를 백그라운드에서 실행시켰으므로 터미널 입력을 처리하지 못하고 동작을 멈춘 것이다. 따라서 이는 TTY 입력 문제로 React 개발 서버는 백그라운드 실행 시에도 TTY 입력을 기본적으로 기다리는 특징을 이해해야 한다.
해결은 nohup
해결을 위해 nohup을 사용한다. nohup은 프로세스가 터미널 입력에 의존하지 않도록 한다. nohup을 사용하여 TTY 입력을 무시하고 백그라운드에서 실행할 수 있다.
$ nohup yarn dev --host 0.0.0.0 --mode production &
nohup?
일반적으로 명령어는 터미널의 HUP(Hangup) signal을 받으면 종료된다. nohup은 이때 HUP signal을 무시하도록 명령을 실행하므로 터미널 종료와 관계없이 명령이 계속 실행될 수 있다. nohup 사용 시 출력을 명시적으로 리다이렉션하지 않는다면 nohup.out 파일에 저장된다.
보통은 터미널의 세션 종료와 관계없이 명령을 동작시키기 위해 사용하지만, React의 실행도 터미널 입출력과 무관하게 백그라운드에서 실행하는 것이 문제의 요점이었으므로 nohup을 사용했다.
'개발일기 > 이슈 로그' 카테고리의 다른 글
[이슈 로그] 네트워크 이슈 + 'yarn dev --host 0.0.0.0' (3) | 2024.11.22 |
---|---|
[이슈로그] Alpine Linux에서 Nessus 다운로드 2 - 트러블 슈팅 (2) | 2024.09.09 |
[이슈로그] Alpine Linux에서 Nessus 다운로드 1 - 사건의 발단 (0) | 2024.09.09 |
[Alpine Linux] Nginx 설치 및 실행 (0) | 2024.08.13 |
[Linux] 활성화된 유닉스 도메인 목록 (0) | 2024.08.07 |
댓글