重启后启动的Plist文件未运行

时间:2017-08-03 02:50:47

标签: objective-c macos login plist launchd

我正在iMac的登录页面上创建一个需要GUI的OSX应用程序,我想知道(如果可能的话)我可以在重启后运行launchd plist文件。以下plist文件位于" / Library / LaunchAgents /" 目录中:

<?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>Disabled</key>
         <false/>
    <key>Label</key>
       <string>com.example.apple-samplecode.PreLoginAgentCocoa</string>
    <key>LimitLoadToSessionType</key>
       <string>LoginWindow</string>
    <key>KeepAlive</key>
       <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/Library/PrivilegedHelperTools/PreLoginAgentCocoa.app/Contents/MacOS/PreLoginAgentCocoa</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

该文件适用于我从桌面注销但在重新启动计算机时无法正常工作。

任何帮助都很有用。

1 个答案:

答案 0 :(得分:0)

  

OSX应用程序需要在iMac登录页面上的GUI

对当前登录的会话用户执行

LaunchAgents。当您重新启动Mac并显示登录屏幕时,没有会话用户。

正如Apple Documentation所述: -

  

用户代理本质上与守护程序相同,但特定于给定的登录用户,并且仅在该用户登录时执行

如果没有给定的“登录用户”,您的应用程序将无法作为LaunchAgent执行。

  

该文件适用于我从桌面注销的时间

会话用户此时仍然可用,因此在会话用户发布之前将在注销时运行。