使用launchd运行node.js脚本

3

我正在尝试运行一个用node.js编写的网络爬虫。node app.js可以成功运行文件,但是我无法让launchd运行脚本。这是我的plist文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.username.kijijiscraper</string>

  <key>Program</key>
  <string>/usr/local/bin/node</string>

  <key>ProgramArguments</key>
  <array>
    <string>/Users/username/documents/nodeprojects/scraper/app.js</string>
  </array>

  <key>StandardOutPath</key>
  <string>/Users/username/documents/nodeprojects/scraper/launchdOutput.log</string>
  <key>StandardErrorPath</key>
  <string>/Users/username/documents/nodeprojects/scraper/launchdErrors.log</string>

</dict>
</plist>

我会加载它:launchctl load /Users/username/library/launchagents/com.username.kijijiscraper.plist,这是plist文件保存的位置。
最终它将按间隔运行,但现在我正在尝试使用launchctl start com.username.kijijiscraper进行测试。
期望的行为-基于抓取结果收到电子邮件-不会发生,并且日志文件中没有错误。同样,网络爬虫从终端工作。
1个回答

2

您需要按照以下步骤启动服务:

launchctl start com.username.kijijiscraper

加载plist后,或者只需添加以下内容:
<key>RunAtLoad</key>
<true/>

抱歉,我只能使用英语进行翻译。请告诉我您需要翻译的内容。
<key>KeepAlive</key>
<true/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接