linux 关于启动脚本中的auto ssh

guicsvcw  于 2023-11-17  发布在  Linux
关注(0)|答案(1)|浏览(214)

我想在系统启动后立即启动autossh,所以我问chatgpt;他告诉我写一个启动脚本并用systemctl管理这个脚本。
然而,事情变糟了,当我遵循指示,我得到一个错误:

Aug 07 23:35:00 ubuntu autossh[840]: ssh exited prematurely with status 255; autossh exiting

字符串
下面是我的启动脚本:

#!/bin/zsh                                                                                                                                                                                                    

# tmux for clash
tmux new -d -s clash '/root/clash/clash -d /root/clash'

# tmux for reverse tunnel
tmux new -d -s ssh-tunnel 'autossh -M 0 -o "ServerAliveInterval 30" -o "ServerAliveCountMax 3" -N -R 22222:localhost:22 ucloud'


我使用autossh打开一个反向隧道到远程服务器;顺便说一下,冲突已经成功启动
我试过用delay启动autossh(只有10秒,我猜10秒足够系统自己准备了),这是可行的,但这会使脚本变得丑陋。
我想知道,我能解决这个问题,没有这种模棱两可的延迟

j0pj023g

j0pj023g1#

ssh连接需要网络准备好,所以我尝试在我的自定义服务中添加一个命令

[Unit]
Description=Startup Script
# this After ensures my self-defined service will start after network and ssh are prepared
After=network-online.target ssh.service

[Service]
Type=simple
ExecStart=/usr/local/bin/startup_script.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

字符串
这工作,再见愚蠢的延迟

相关问题