Linux bash 포크 프로세스(inotifywait)

Linux bash 포크 프로세스(inotifywait)

포크하는 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 프로세스인 하위 쉘에서 실행됩니다.

관련 정보