【问题标题】:Launchd plist cannot load启动的 plist 无法加载
【发布时间】:2022-08-06 23:51:53
【问题描述】:

我正在玩一个非常简单的 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.info.test.agent</string>
    <key>LimitLoadToSessionType</key>
    <string>Background</string>
    <key>ProgramArguments</key>
    <array>
     <string>/usr/bin/touch</string>
     <string>/Users/foobar/Desktop/TestAgentDidRun.txt</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
   </dict>
  </plist>

保存后我尝试加载它:

launchctl load ~/Library/LaunchAgents/com.info.test.agent.plist 

我得到的响应是:服务无法在请求的会话中加载。

我正在运行 Mac OS 10.15.7 - Catalina。

有任何想法吗?

    标签: macos plist launchd


    【解决方案1】:

    我正在试验 LaunchAgents 以了解它们是如何工作的。我用你的例子作为我实验的起点。到目前为止我学到的东西:

    • 当 LimitLoadToSessionType=Aqua 时,代理会运行并创建所接触的文件。
    • 当 LimitLoadToSessionType=Background 时,代理不运行或不创建文件。
    • 控制台应用程序让我看到了launchctl 日志。但是记录的信息没有帮助。
    • 我有一个带有 println 的代理。并且 plist 指定了 sysout 和 syserr 路径。代理运行,println 文本进入 sysout 文件。
    • 我无法手动启动 ~/Library/LaunchAgents 中的任何代理,即使我使用 sudo 运行它们也是如此。
    • 我确实使用 sudo 在 /Library/LaunchAgents 中手动启动了一个代理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2019-04-03
      • 2014-11-17
      • 1970-01-01
      • 2013-09-06
      • 2015-03-01
      • 2013-03-17
      相关资源
      最近更新 更多