我需要观察 osx 中的特定目录更改,以查看文件是否已上传,当文件在目录中时,我想运行一个非常基本的脚本(使用 pdflatex 简单地“编译”.tex 文件),什么到目前为止我已经完成了:
1)launchd 监控我的目录,这是我的 test.plist 文件
<plist version="1.0">
<dict>
<key>Label</key>
<string>DirMonitor</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Caffeina/Desktop/test.sh</string>
<string>path modified</string>
</array>
<key>QueueDirectories</key>
<array>
<string>/Users/Caffeina/Desktop/test_dir/</string>
</array>
</dict>
</plist>
2)测试.sh:
#!/bin/sh
/usr/texbin/pdflatex -interaction=nonstopmode /Users/Caffeina/Desktop/test_dir/test.tex
3)启动监视器:
launchctl load /Users/Caffeina/Library/LaunchAgents/test.plist
4)为了测试一切是否正常,我在受监控的目录中移动了一个文件....但没有任何反应。查看控制台输出我可以红色这个错误:
logger[4155] This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010)
logger[4155] restricted \write18 enabled.
logger[4155] entering extended mode
logger[4155] ! I can't write on file `test.log'.
logger[4155] (Press Enter to retry, or Control-D to exit; default file extension is `.log')
logger[4155] Please type another transcript file name
logger[4155] ! Emergency stop
logger[4155] ! ==> Fatal error occurred, no output PDF file produced!
com.apple.launchd.peruser.501[127] (logger[4155]) Exited with exit code: 1
我不明白为什么会出现这个错误,知道吗?