자체 유지형 역방향 SSH 터널을 실행하려고 시도하는 동안 Brew를 사용하여 "autossh" 패키지를 설치해 보았습니다. Autossh는 사용자 프롬프트에서 실행할 때 단독으로 작동하지만 launchctl/launchd에서는 작동하지 않습니다.
/Library/LaunchDaemons/com.tunnel.autossh.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.example.app</string>
<key>Program</key>
<string>/Users/user/Public/tunnel.sh</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
/users/users/public/tunnel.sh(실행 가능 비트 세트)
#!/bin/bash
/usr/local/Cellar/autossh/1.4e/bin/autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -R 5000:localhost:22 [email protected]
launchctl은 /Lib*/LaunchDaemons/*autossh.plist를 로드합니다.
아직 autossh/launchd에 대한 대안을 찾지 못했습니다.