답변:
일반적으로 프로세스가 stdin
스트림 에서 읽으려고 할 때 발생 합니다. 프로세스가 백그라운드에 있으면 TTIN 신호를 수신 하여 정지됩니다 (STOP 신호와 동일한 동작). 백그라운드 프로세스가 터미널에 쓰려고 할 때 이중 신호 TTOU 도 있습니다 .
포 그라운드로 가져 오면 프로세스가 재개되고 터미널에서 읽을 수 있습니다.
데모:
$ cat t.sh
#! /bin/sh
sleep 1
read dummy
$ ./t.sh &
[1] 3364
$
[1]+ Stopped ./t.sh
$ ps aux|grep t.sh
me 3364 0.0 0.0 11268 1200 pts/0 T 17:04 0:00 /bin/sh ./t.sh
이것을 피하는 방법 중 하나는 사용하는 nohup
것이지만 프로그램이 입력 스트림을로 리디렉션하는 것을 처리하지 않으면 이상한 영향을 줄 수 있습니다 /dev/null
.