![Linux bash 포크 프로세스(inotifywait)](https://linux55.com/image/149894/Linux%20bash%20%ED%8F%AC%ED%81%AC%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4(inotifywait).png)
포크하는 bash 스크립트가 실행 중입니다. 다음과 같습니다.
#!/bin/bash
/usr/bin/killall inotifywait
/usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder1/ | while IFS= read -r FILE; do /bin/chmod 770 "$FILE"; done >/dev/null 2>&1 &
/usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder2/ | while IFS= read -r FILE; do /bin/chmod 770 "$FILE"; done >/dev/null 2>&1 &
/usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder3/ | while IFS= read -r FILE; do /bin/chmod 770 "$FILE"; done >/dev/null 2>&1 &
/usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder4/ | while IFS= read -r FILE; do /bin/chmod 770 "$FILE"; done >/dev/null 2>&1 &
스크립트를 실행하면 8개의 프로세스가 생성됩니다.
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder1/...
- /bin/bash ./scriptname.sh
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder2/...
- /bin/bash ./scriptname.sh
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder3/...
- /bin/bash ./scriptname.sh
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder4/...
- /bin/bash ./scriptname.sh
왜 이렇게 포크되지 않습니까?
- /bin/bash ./scriptname.sh
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder1/...
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder2/...
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder3/...
- /usr/bin/inotifywait -mrq -e CREATE --format %w%f /home/sftp/folder4/...
답변해주셔서 감사합니다, Starflyer님
답변1
inotifywait의 출력을 while 루프로 파이프하고 있습니다. 이 컨텍스트의 while 루프는 추가 bash 프로세스인 하위 쉘에서 실행됩니다.