我有一个自定义应用程序,如果我在提示符中自己输入命令,它直接从 Ubuntu VM 中的命令行运行或通过 SSH 运行时可以正常工作。
如果我通过 SSH(从 Windows 计算机)连接到 Ubuntu 并发送命令作为 ssh 命令的一部分来运行相同的应用程序,则 SSH 控制台不会打印应用程序的任何输出。该应用程序(实际上是 TCP 服务器)似乎已死,因为我当时无法连接到它。但是,当我关闭命令提示符并有效结束 SSH 会话时,应用程序恢复运行,我可以连接到它,没有问题!
当我who
在 Ubuntu VM 中运行时,它根本没有列出 SSH 连接,但如果我运行,ss -t -a
我可以看到该应用程序实际上正在监听。执行ps
也不会显示应用程序正在运行。
这对任何人来说都有意义吗?
答案1
构造命令时我似乎忘记了一些事情。这个命令按预期工作:
ssh -t [email protected] "sudo ./xyz.sh; exec bash -l"