本地运行命令与使用SSH进行远程命令之间的区别


1

我正在尝试通过SSH进入远程计算机,并在该计算机上运行.ksh文件以运行Java程序。

如果使用诸如Putty之类的工具通过SSH进入计算机,请运行以下命令:

cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName

Java程序将运行其全部过程,发送一些数据,将其放入外部数据库中,并显示响应。但是,如果我尝试从另一台计算机上的命令行通过SSH进入该计算机,如下所示:

/usr/bin/ssh root@xxx.xx.xxx.xx.x "cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName;"

程序无法完全执行。它没有给我任何错误,但只是返回有关类文件已成功加载的通知,显示Java程序的第一行,然后退出而没有发送请求或接收响应。

我的两种方法有什么区别?任何会导致这种情况的想法吗?


您可以尝试进行分叉,也许腻子只是发送命令并退出ssh;试试/usr/bin/ssh root@xxx.xx.xxx.xx.x "cd /folder/folder/examples; ksh runexample.ksh NameOfClass methodName &"

Answers:


0

您的shell将在java命令完成之前退出,并杀死所有从属进程。您需要重写脚本以便等待Java程序完成,或者重写脚本以使进程能够生存到退出为止。


0

问题是我不小心在SSH命令中的“ methodName”后面加上了分号。对我来说有趣的是,这启动了应用程序,显示了第一行,然后退出而没有任何错误消息!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.