首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ssh和screen远程编译和运行程序

使用ssh和screen远程编译和运行程序
EN

Unix & Linux用户
提问于 2013-08-08 22:35:20
回答 2查看 2K关注 0票数 2

我试图远程编译和运行一个程序。但是,我希望在屏幕中这样做,并且我希望在ssh之后使用网格引擎在另一个节点上运行它。目前我有:

代码语言:javascript
复制
ssh me@server screen -R session 'qlogin; cd path; mvn options program'

这基本上是可行的,但我收到一条消息说,我必须连接到终端。我读到了这方面的内容,并在ssh中添加了-t选项。这样,我的命令就中断了:好像我已经结束了,屏幕开始了,然后不知道"mvn“命令,并终止了我的会话。

我想知道为什么会发生这种情况,以及如何在使用网格引擎时,从屏幕上的本地机器上正确地启动作业。

EN

回答 2

Unix & Linux用户

发布于 2013-08-09 15:49:27

我将向屏幕添加-L选项,它打开屏幕日志(默认为文件名screenlog.0)。这样你就可以看到正在发生的事情了。我可以想象,屏幕将整个qlogin; cd path; mvn options program看作一个要执行的程序(而不是一组不同的命令),无法执行该命令,然后退出。

另一种选择是将正在执行的命令放入脚本中:

代码语言:javascript
复制
#!/bin/sh
qlogin
cd path
mvn options program

创建一个屏幕it文件(比如我们称之为mysessionrc):

代码语言:javascript
复制
# 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组合中工作,我不得不这样做。

如果仍然失败,那么我想补充如下:

代码语言:javascript
复制
zombie kr
verbose on

在mysessionrc文件开始时,让屏幕提示在运行命令完成k杀死或r重新启动后该如何处理,详细将输出一些有关屏幕正在运行的信息。

票数 1
EN

Unix & Linux用户

发布于 2014-09-18 04:20:21

我的猜测是,当通过SSH远程执行命令时,您不会生成屏幕可以附加到的终端(pty)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/86134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档