我试图远程编译和运行一个程序。但是,我希望在屏幕中这样做,并且我希望在ssh之后使用网格引擎在另一个节点上运行它。目前我有:
ssh me@server screen -R session 'qlogin; cd path; mvn options program'这基本上是可行的,但我收到一条消息说,我必须连接到终端。我读到了这方面的内容,并在ssh中添加了-t选项。这样,我的命令就中断了:好像我已经结束了,屏幕开始了,然后不知道"mvn“命令,并终止了我的会话。
我想知道为什么会发生这种情况,以及如何在使用网格引擎时,从屏幕上的本地机器上正确地启动作业。
发布于 2013-08-09 15:49:27
我将向屏幕添加-L选项,它打开屏幕日志(默认为文件名screenlog.0)。这样你就可以看到正在发生的事情了。我可以想象,屏幕将整个qlogin; cd path; mvn options program看作一个要执行的程序(而不是一组不同的命令),无法执行该命令,然后退出。
另一种选择是将正在执行的命令放入脚本中:
#!/bin/sh
qlogin
cd path
mvn options program创建一个屏幕it文件(比如我们称之为mysessionrc):
# myscreenrc
#Create window 0 with title 'mvn' and run /path/to/myscript.sh
screen -t mvn 0 /path/to/myscript.sh然后运行ssh -t me@server 'screen -R session -c mysessionrc‘。为了让屏幕在FreeBSD+ssh+screen组合中工作,我不得不这样做。
如果仍然失败,那么我想补充如下:
zombie kr
verbose on在mysessionrc文件开始时,让屏幕提示在运行命令完成k杀死或r重新启动后该如何处理,详细将输出一些有关屏幕正在运行的信息。
发布于 2014-09-18 04:20:21
我的猜测是,当通过SSH远程执行命令时,您不会生成屏幕可以附加到的终端(pty)。
https://unix.stackexchange.com/questions/86134
复制相似问题