通过 autossh 在后台运行远程进程

通过 autossh 在后台运行远程进程

在 Ubuntu 中,我尝试geany通过以下命令在本地 X 显示器上运行编辑器:

 autossh -o StrictHostKeyChecking=false -XCg me@otherDYNDNShost geany &

问题是,在第一次断开连接并自动重新连接后,我必须fg在本地 X windows 会话中执行该过程以使(新的)geany 再次响应。这意味着disown终端最终导致它完全陷入冻结的睡眠状态。

我怎样才能真正独立于任何终端/tty 来运行它?

附加<&-到切断 STDIN 的命令似乎也不重要。

答案1

尝试添加-F自动SSH。描述-F来自 ssh 手册页:

请求 ssh 在命令执行之前进入后台。如果 ssh 要求输入密码或密码短语,但用户希望它在后台运行,那么这非常有用。这意味着-n。在远程站点启动 X11 程序的推荐方法是使用 ssh -f host xterm 之类的命令。

如果不起作用,请尝试使用守护进程(http://www.libslack.org/daemon/)。在 Debian 及其衍生包中命名为守护进程。例子:

daemon autossh -o StrictHostKeyChecking=false -XCg me@otherDYNDNShost geany

答案2

尝试使用类似的证书身份验证。它还提供对远程资源的动态代理访问。这是我使用 Linux 和 ssh 进行远程 IT 支持的首选方法。我使用的端口是任意的......

autossh -M 18080 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -D 8080 root@server -p 22

如果您在“~/.profiles”文件中使用远程调用的 tmux,它将使您保持连接到同一个远程会话。如果需要,您可以更具体地命名会话...

tmux attach

您需要创建一个包含此内容的“~/.tmux.conf”文件,否则 tmux 将嵌套会话,这会非常混乱......

new-session -n $HOST

我每天都在基于 Debian 的系统和 cygwin 上使用它。为了更深入地理解,请尝试使用 Google 来获取上述详细信息。您也可以配置 tmux 来启动一个或多个程序。不过,我还没有使用自动启动 X 程序对此进行测试。

相关内容