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



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

  • ssh到远程服务器
  • 使用屏幕执行java程序

类似这样的东西:

alias命令='ssh-i[PATH TO PRIVATE KEY]-p[PORT]-t[USER@REMOTE_HOST]screen[SHELL脚本执行JAR文件]

别名运行良好(正如我在执行后看到的远程计算机中运行的屏幕(,但无论屏幕是否分离,屏幕在执行别名后不久就会终止。客户端和远程计算机都在OSX上运行。

但是,如果我通过按顺序手动执行命令(不使用别名以一次性实现(

  • ssh-i[PATH TO PRIVATE KEY]-p[PORT]-t[USER@REMOTE_HOST]

然后在远程外壳上

  • 屏幕[SHELL脚本执行JAR]

屏幕中的程序能够运行到完成并正常退出,而不会提前终止。

当我从客户端计算机执行别名时,后台似乎有一些进程会杀死屏幕。这可能是什么原因造成的?谢谢

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

最新更新