launchd.plist每10秒运行一次,而不是一次 [英] launchd.plist runs every 10 seconds instead of just once
问题描述
我一直在设置 launchd.plist
XML,该XML在每次安装特定的USB设备时都会运行.我按照 xpc_events(3)手册页,无论何时安装设备,它都在运行应用程序.
I have been setting up a launchd.plist
XML that is run every time a specific USB device is mounted. I followed the instructions on the xpc_events(3) man page and it is running the application whenever the device is mounted.
我遇到的问题是,只要仍然安装设备,该应用程序就会每10秒钟运行一次.如何设置它,使其仅在将设备插入USB端口时才运行一次?
The problem I'm having is that the application is run again and again every 10 seconds as long as the device is still mounted. How can I set it up so it only runs once when the device is inserted in the USB port?
<?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.myapp.agent</string>
<key>Program</key>
<string>/Applications/MyApp.app/Contents/MacOS/MyAgent</string>
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.device-attach</key>
<dict>
<key>idVendor</key>
<integer>2316</integer>
<key>idProduct</key>
<integer>4096</integer>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOMatchLaunchStream</key>
<true/>
</dict>
</dict>
<key>com.apple.notifyd.matching</key>
<dict>
<key>com.apple.interesting-notification</key>
<dict>
<key>Notification</key>
<string>com.apple.interesting-notification</string>
</dict>
</dict>
</dict>
</dict>
</plist>
推荐答案
AIUI,您的应用程序必须调用xpc_set_event_stream_handler才能从队列中删除事件.您可能还需要在.plist中添加< key> KeepAlive</key>< false/>
,但是我不确定.
AIUI your application must call xpc_set_event_stream_handler to remove the event from the queue. You might also have to add <key>KeepAlive</key><false/>
to the .plist, but I'm not sure about that.
这篇关于launchd.plist每10秒运行一次,而不是一次的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!