我使用这个脚本来更新我的仓库 slackware(生成 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
工作完美,但只有当我从 shell 启动它时,如果我从 rc.local 或 crontab 运行它。它不起作用,第二个脚本(gen_repos.sh)仍然处于睡眠状态。为什么?
答案1
找到解决方案,nohup。
例如
nohup /usr/local/bin/aggiornailrepo.sh&
在 rc.local 上
并且不要忘记 inotifywait 上的 -o /dev/null 否则没有 shell 将无法工作