Expect는 잘 작동하지만 전경에서만 작동합니다. 왜 그렇습니까?

Expect는 잘 작동하지만 전경에서만 작동합니다. 왜 그렇습니까?

이 스크립트를 사용하여 저장소 슬랙웨어(asc, txt 등 생성)를 업데이트합니다.

http://slackware.org.uk/people/alien/tools/gen_repos_files.sh

내 예상 스크립트를 사용하여 "자동화"했습니다.

#!/bin/bash
set -e

funct()
{
#script update repo http
pass3="proot"

    expect -c "
    spawn /usr/local/bin/gen_repos_files.sh -l /tmp/changelog
    expect \"Enter your GPG passphrase:  \"
    send \"$pass3\n\"
    interact
    "

find /srv/httpd/htdocs/repos/slackware-mg/ -type f |xargs chmod 644  -v

}

while inotifywait -qqre modify /http/srv/httpd/htdocs/repos/slackware-mg; do funct; done

완벽하게 작동하지만 rc.local 또는 crontab에서 실행할 경우 쉘에서 시작할 때만 작동합니다. 작동하지 않습니다. 두 번째 스크립트(gen_repos.sh)가 여전히 대기 중입니다. 왜?

답변1

해결책을 찾았습니다.

예를 들어

nohup /usr/local/bin/aggiornailrepo.sh&

rc.local에서

그리고 inotifywait에서 -o /dev/null을 잊지 마세요. 그렇지 않으면 쉘 없이는 작동하지 않습니다.

관련 정보