1

我需要观察 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

我不明白为什么会出现这个错误,知道吗?

4

2 回答 2

2

工作目录不正确。我猜工作目录是launchd所在的目录(你可以通过将'pwd'命令添加到shell脚本来测试它)。你应该改变它,或者你可以修改你的 pdflatex 命令:

/usr/texbin/pdflatex -interaction=nonstopmode -output-directory=/tmp /Users/Caffeina/Desktop/test_dir/test.tex

我补充说-output-directory=/tmp,我现在假设您对 /tmp 具有读写权限。如果这可行,则问题出在写权限上。然后,您可以四处寻找正确的输出目录。您可以通过launchd 或shell 脚本中的'cd myDir' 来完成。

于 2010-12-23T00:07:23.620 回答
0

您似乎无权在文件“test.log”上写入。

于 2010-12-22T14:36:58.643 回答