我正在使用通过SSL Network Extender(SNX)连接到远程服务器的VPN连接。来自远程服务器的连接仅限于12小时。之后,连接被断开,必须再次重新启动SNX服务器。为了克服这些困难,我尝试使用crontab自动重启SNX。
vpn.sh
的shell脚本文件。#!/bin/bash snx -d sleep 3 echo 'password' | snx
.snxrc
server server.com username username reauth yes
crontab -e
)内部配置 * */12 * * * bash /home/username/vpn.sh > /home/username/cron.log
它每12小时运行一次。但是snx -d
运行成功,但是到达echo 'newpass6' | snx
时出现此错误:
Failed to init terminal!
有人遇到过这样的问题吗?请帮我。我已经挣扎了一个星期。预先感谢。
我已点击此链接来设置snx
答案 0 :(得分:1)
因为snx客户端无法在没有终端的情况下启动。因此,我将这些命令放在脚本中,以在byobu会话中启动snx。
byobu new-session -d -s vpn;
byobu new-window -t vpn:1 -n "snx" "echo your_password | snx -s your_ip -u your_user; sleep 10"
答案 1 :(得分:0)
批准的答案对我不起作用。它创建一个空的 tmux 会话,内部没有执行任何命令。所以这是我完成这项任务的方式:
byobu-tmux new-session -d "echo <password> | nohup snx -s <host> -u <user>"
只需一个命令即可使其工作。 nohup
是必需的,因为 snx 进程将进入后台并返回提示。之后tmux退出,snx没有分配给终端。 tmux退出后没有nohup
,系统会终止snx进程。