【问题标题】:Running command line app in the background using launchagents mac os x使用launchagents mac os x在后台运行命令行应用程序
【发布时间】:2017-03-28 21:56:13
【问题描述】:

我有一个命令行应用程序需要在用户登录时运行。我已将一个 XML 文件添加到用户的启动代理目录。应用程序运行,但问题是它在运行时打开终端。我希望它在用户不知道的情况下在后台运行。这是我的清单:

<?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>LaunchOnlyOnce</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>-n</string>
        <string>/Applications/Host</string>
    </array>
    <key>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>com.test.httphost</string>
    <key>RunAtLoad</key>
    <true/>
</dict>

我该怎么做?

【问题讨论】:

    标签: macos objective-c-blocks launch-agent


    【解决方案1】:

    我预计问题是调用open。如果您直接调用 /Applications/Host,它应该会按预期工作。

    但是,如果您需要 -n 参数来打开,请尝试通过使用 -c 参数调用 /bin/bash 来调用它,并将命令的其余部分传递给带有字符串的 bash。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2014-09-13
      • 2011-03-09
      • 1970-01-01
      相关资源
      最近更新 更多