我在运行Mavericks的2010 MBA上运行autossh。该脚本可以正常运行,并且可以在命令行中按预期方式运行,但在通过launchd运行时则无法运行。
我尝试将PATH包含在启动的plist中,但这无济于事。
这是脚本:
#!/bin/bash
/opt/local/bin/autossh -M 0 -f -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -o "ExitOnForwardFailure yes" -R 19990:localhost:22 mnewman@super.myddns.rocks -p 10000
我尝试过是否使用“ ExitOnForwardFailure yes”
这是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>Disabled</key>
<false/>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
</string>
</dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mgnewman.autossh</string>
<key>ProgramArguments</key>
<array>
<string>/Users/mnewman/bin/autossh.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
我尝试过使用PATH键。
我希望能够远程登录到此计算机。我也只用ssh尝试过,它在命令行和启动时都运行良好:
#!/bin/bash
ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R 19999:172.16.0.56:22 mnewman@super.myddns.rocks -p 10000
当然,由于ssh有效,所以我实际上不需要autossh,但我想知道为什么它对我不起作用。
答案 0 :(得分:0)
现在工作。事实证明,要使其与启动一起使用,我必须在shell脚本中添加两个参数:“-f”以在后台运行,而“ -N”不执行命令。我不知道为什么这样。
#!/bin/bash
/opt/local/bin/autossh -f -M 0 -N -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 19990:localhost:22 mnewman@ksuper.myddns.rocks -p 10000