所以基本上我有一个Java应用程序,我通过命令行调用:
java -jar -Xmx256m /path/to/tester.jar /path/to/testerconfig.config
遇到一些问题,通过launchd启动它。
基本上我有两个PLIST文件:MBTester_Hourly.plist和MBTester_Kill.plist
MBTester_Hourly.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>MBTester_Hourly</string>
<key>ProgramArguments</key>
<array>
<string>java</string>
<string>-jar</string>
<string>-Xmx256m</string>
<string>/path/to/tester.jar</string>
<string>/path/to/testerconfig.config </string>
</array>
<key>StandardOutPath</key>
<string>/var/log/tester.log</string>
<key>StandardErrorPath</key>
<string>/var/log/tester.log</string>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
MBTester_Kill.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>MBTester_Kill</string>
<key>ProgramArguments</key>
<array>
<string>/Users/1eppm/Desktop/commandlineApp/killTester.sh</string>
</array>
<key>StandardOutPath</key>
<string>/var/log/tester.log</string>
<key>StandardErrorPath</key>
<string>/var/log/tester.log</string>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>45</integer>
</dict>
</dict>
</plist>
所以你可以看到&#39; MBTester_Hourly.plist&#39;在每小时开始时启动JAVA应用程序,并且&#39; MBTester_Kill.plist&#39;调用一个脚本,该脚本将在一小时后45分钟终止此过程。
如果我手动输入JAVA应用程序启动语句,它可以工作并将其结果输出到终端。
我甚至还有其他3台机器,我已经用PLIST文件实现了它,并且它可以工作。
我只有两个MAC Mini拒绝通过已配置的launchd PLIST文件启动应用程序。
我当然卸载并加载了每个PLIST文件:
launchctl load /Library/LaunchAgents/Start_Hourly.plist
我也试图重启机器。
看到此进程在没有问题的其他计算机上运行非常令人困惑。
我注意到的一件事是,当PLIST文件被安排进行其处理时,我运行了一个“启动列表”。 grep MBTester&#39;它返回了一些奇特的东西:
launchctl list | grep MBTester
- 78 MBTester_Hourly
- 78 MBTester_Killer
显示退出状态&#39;这是什么意思?
在它实际工作的机器上,它总是处于退出状态&#39; 0。
想法?