0
我有一個啓動代理,只要連接了USB設備就運行bash腳本。我希望它只運行一次,但是當我連接設備時,腳本每10秒繼續運行一次。啓動代理每10秒運行一次腳本
這裏是plist中:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.program</string>
<key>Program</key>
<string>/Users/Peter/Desktop/test1.sh</string>
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.device-attach</key>
<dict>
<key>idProduct</key>
<integer>1476</integer>
<key>idVendor</key>
<integer>1356</integer>
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>IOMatchLaunchStream</key>
<true/>
</dict>
</dict>
</dict>
</dict>
</plist>
下面是腳本:
#!/bin/bash
open -a "Spotify";
sleep 11;
我加了睡眠11,因爲我讀了劇本需要運行至少10秒鐘,讓launchd的思考它完成了它的任務。然而,這並沒有幫助。
在運行launchctl list com.example.program
終端給出:
"LimitLoadToSessionType" = "Aqua";
"Label" = "com.example.program";
"TimeOut" = 30;
"OnDemand" = true;
"LastExitStatus" = 0;
"Program" = "/Users/Peter/Desktop/test1.sh";
不幸的是,添加這些鍵並沒有什麼區別。有趣的是,當我在終端中運行launchctl list com.example.program時,我沒有看到這些新鍵。這是正常的嗎? –
@JohnSmith這聽起來像你需要重新加載.plist。嘗試'launchctl unload/path/to/com.example.program.plist',然後'launchctl unload/path/to/com.example.program.plist'。 (注意:*不要*使用'sudo';這會把它當作一個守護進程,而不是一個代理。) –
我重新加載它。它不起作用。 –