Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GNU屏幕在从ssh会话生成后不久终止_Ssh_Gnu Screen - Fatal编程技术网

GNU屏幕在从ssh会话生成后不久终止

GNU屏幕在从ssh会话生成后不久终止,ssh,gnu-screen,Ssh,Gnu Screen,我有一个别名来自动执行以下命令序列: ssh到远程服务器 使用屏幕执行java程序 大概是这样的: alias command='ssh-i[私钥路径]-p[端口]-t[USER@REMOTE_HOST]屏幕[执行JAR文件的SHELL脚本] 别名工作正常(正如我看到的,在执行别名后,屏幕在远程计算机中运行),但在执行别名后,屏幕会很快终止——不管屏幕是否分离。客户端和远程计算机都在OSX上运行 但是,如果我按顺序手动执行命令(不使用别名一次执行所有命令),则 ssh-i[私钥路径]-p[

我有一个别名来自动执行以下命令序列:

  • ssh到远程服务器
  • 使用屏幕执行java程序
大概是这样的:

alias command='ssh-i[私钥路径]-p[端口]-t[USER@REMOTE_HOST]屏幕[执行JAR文件的SHELL脚本]

别名工作正常(正如我看到的,在执行别名后,屏幕在远程计算机中运行),但在执行别名后,屏幕会很快终止——不管屏幕是否分离。客户端和远程计算机都在OSX上运行

但是,如果我按顺序手动执行命令(不使用别名一次执行所有命令),则

  • ssh-i[私钥路径]-p[端口]-t[USER@REMOTE_HOST]
然后在远程shell上

  • screen[执行JAR的SHELL脚本]
屏幕内的程序能够运行到完成,并正常退出,无需提前终止


当我从客户端计算机执行别名时,后台似乎有某个进程终止了屏幕。这可能是什么原因?谢谢

最可能的问题是ssh在传递要运行的命令时默认不分配(伪)终端。最简单的方法是将
-t
选项传递给
ssh(1)
,这将告诉ssh无论如何分配一个终端(只要
ssh(1)
有一个控制终端)。这将允许一切以与分离命令时相同的方式工作。

最可能的问题是ssh在传递命令运行时默认不分配(伪)终端。最简单的方法是将
-t
选项传递给
ssh(1)
,这将告诉ssh无论如何分配一个终端(只要
ssh(1)
有一个控制终端)。这将使所有操作与您分离命令时的操作方式相同。

谢谢您的回答。实际上,我在别名中将-t传递到ssh(1)中。下面是它的样子:alias command='ssh-i[PATH TO PRIVATE KEY]-p[PORT]-t[USER@REMOTE_HOST]screen[执行JAR文件的SHELL脚本]澄清一下,问题是屏幕将像往常一样运行(正如我在屏幕上看到的程序输出),但在短时间(<30秒)之后,它将在程序完成之前终止。不过,如果我手动将ssh连接到远程计算机,然后使用screen执行程序,则不会发生这种情况。谢谢您的回答。实际上,我在别名中将-t传递到ssh(1)中。下面是它的样子:alias command='ssh-i[PATH TO PRIVATE KEY]-p[PORT]-t[USER@REMOTE_HOST]screen[执行JAR文件的SHELL脚本]澄清一下,问题是屏幕将像往常一样运行(正如我在屏幕上看到的程序输出),但在短时间(<30秒)之后,它将在程序完成之前终止。但是,如果我手动将ssh连接到远程计算机,然后使用screen执行程序,则不会发生这种情况。