ssh、screen、运行命令和分离一次性完成?

ssh、screen、运行命令和分离一次性完成?

我喜欢jupiter-notebook在 SSH 中的屏幕会话中启动一个服务器(基本上是一个),让它运行,然后立即分离。逐一执行:

ssh USER@HOST
screen -d -m /home/USER/anaconda3/bin/jupyter-notebook --ip HOST --port 8889 --no-browser

然后从屏幕分离,最后断开与 SSH 的连接。然后使用服务器。在这种情况下,一切正常。您还可以看到屏幕正在运行

ssh -t USER@HOST screen -ls

现在我该如何一次性完成前者?

ssh -t USER@HOST "screen -d -m /home/USER/anaconda3/bin/jupyter-notebook --ip HOST --port 8889 --no-browser"

不起作用。我做错了什么?

谢谢

答案1

您已经非常接近了,但您不需要 TTY 来启动屏幕 - 它会创建自己的 PTY。但您确实需要将 ssh 会话放在后台以允许屏幕进程继续运行,如下所示:

ssh -f USER@HOST 'screen -dm command'

可能还会看到这个答案您可以对正在运行的屏幕会话执行其他操作(如果您命名的话)。

相关内容