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

问题描述 投票:0回答:1

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

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

类似这样的东西:

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

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

但是,如果我按顺序手动执行命令(没有别名,可以一次全部完成),则>]

  • ssh -i [私钥路径] -p [PORT] -t [USER @ REMOTE_HOST]
  • 然后在远程外壳上

  • 屏幕[执行JAR的外壳脚本]
  • 屏幕中的程序可以运行完成并正常退出而不会提前终止。

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

我有一个别名来自动执行以下命令序列:ssh到远程服务器使用屏幕执行Java程序之类的东西:alias command ='ssh -i [PATH PRIVATE KEY] -p [PORT]-.. 。

ssh gnu-screen
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.