2016-09-23 2 views
0

이것은 백그라운드 스크립트 테스트입니다.자체 복제 배경 스크립트

실행하면 두 프로세스가 시작되고 그 이유는 알 수 없습니다.

수면 이후 한 번에 20 번. 그리고 다른 것을 잊어 버렸습니다.

#!/bin/bash 

back(){ 
    n=0 
    while [ 1 ] 
    do  
     echo $n 
     n=$(($n+1)) 
     sleep 5 
    done 
} 

back & 
sleep 20 
exit 

명령을 호출 "추신 -a"

PID TTY  TIME  CMD 
8964 pts/2 00:00:00 backgroundtest 
8965 pts/2 00:00:00 backgroundtest 
8966 pts/2 00:00:00 sleep 
8982 pts/2 00:00:00 sleep 

후 잠 20 :

PID TTY  TIME  CMD 
8965 pts/2 00:00:00 backgroundtest 
9268 pts/2 00:00:00 sleep 

다음 영원히 실행 ...

이유는 무엇입니까?

답변

0

while [ 1 ]은 무한 루프입니다. [ 1 ]은 항상 true입니다.

그래서 back & 무한 루프가됩니다 (& 배경에서 새로운 프로세스를 시작) 20 초 동안 두 프로세스와 함께 당신을 떠날 배경 (&), 다음 실행, 종료 20 초 후에을 수행하는 , sleep 20 계속 시작 , 그 후 무한한 사람.