bas*_*ics 2 ssh ubuntu session process sbt
sbt退出ssh会话后,如何保持进程(特别是通过命令生成的进程)存活?以下相关问题[1],[2],[3]和[4]虽可提供信息,但在我的特定情况下并未得出确定的解决方案。简要背景:我有三台服务器代表组成群集的节点,并且每个节点上都运行着相同的程序来分发计算密集型任务。该过程旨在始终在计算机启动时运行,即,每个服务器专用于该项目。每个节点都有以下内容(当我有机会重新登录时,将使用正确的信息来更新它):
Ubuntu 12.04.2 LTS
JVM X.X.X (is JDK 1.7 update 24+)
Scala X.X.X
sbt X.X.X
Run Code Online (Sandbox Code Playgroud)
我可以通过大学网络访问每个节点ssh。我已经尝试过tmux并分离会话,但是只要我自己的笔记本电脑不重新启动,这只会保留该过程。我采取以下步骤在每个节点上启动程序:
ssh user@host -p portsbt* 启动我的程序run在sbt控制台中发出命令*实际命令是 sbt -Dgeotrellis cluster_seed_ip=xxx.xxx.xxx.xxx
是disown或nohup最合适的方法?给定一个答案,我需要发出什么具体且语法正确的命令(如果使用该方法,则从sbt控制台发出disown),以便该sbt进程与我的用户帐户解除关联,并且在退出ssh会话后继续运行?
看起来SBT挂在后台是JLine问题。有一种解决方法:
sbt -Djline.terminal=jline.UnsupportedTerminal about &
Run Code Online (Sandbox Code Playgroud)
只需将此标志添加到要在后台运行的任何SBT命令即可。
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |