【问题标题】:Running a java command with a bash file [duplicate]使用 bash 文件运行 java 命令 [重复]
【发布时间】:2014-03-08 10:40:11
【问题描述】:

我正在通过 PuTTY 运行一个 bash 文件。这是它的内容:

#!/bin/bash
screen -X 'java -Xms2048m -Xmx2048m -jar mcpc.jar'
screen -x

当我运行/backups/turnon.sh 时,它成功连接到屏幕,但是 java 命令从未运行。通过 PuTTY 运行 java 命令可以正常工作。 bash 文件在任何时候都不会中断(screen -x 工作正常),有什么问题?

【问题讨论】:

  • 您可能正在尝试使用这两个问题(this 和 this one)来调试同一个问题,但请等到一个问题得到回答后再询问另一个问题。
  • @kojiro 另一个在 cmets 中得到了回答。我用它们来解决同一个程序的两个不同问题。
  • 你怎么知道 1. 成功连接到 screen 会话 2. java 命令永远不会运行?
  • @Kojiro 1) 因为我可以使用 screen -x,如果没有,它会发送No screen session found.。 2)因为当我进入屏幕时输出不存在并且java命令的结果不存在。

标签: java bash debian putty


【解决方案1】:

如果您还没有,请在此处阅读 Gilles 提供的答案:

简而言之(为了做一些冗余)-X 选项需要一个命令。即:screen-command,而不是 shell/系统命令。

您可以使用stuff-命令。即:

screen -X stuff 'java -Xms2048m -Xmx2048m -jar mcpc.jar

'

如果您省略 命令,目标屏幕应该会响应如下错误:

-X: 未知命令'java -Xms2048m -Xmx2048m -jar mcpc.jar'

在正在运行的屏幕窗口中。


注意事项:

  • 至少在这里,我必须在命令末尾使用双换行符。 (如上例)。
  • 作为替代方法,您可以在 Vim、bash 等中添加控制字符 ^M,通常是 Ctrl+V Enter<CR>,字节0x0d
  • mcpc.jar 必须在本地路径中或由完整/相对路径提供。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 2014-10-01
    • 2018-04-03
    • 2016-10-14
    • 2013-02-04
    • 1970-01-01
    • 2017-06-13
    • 2014-04-07
    • 1970-01-01
    相关资源
    最近更新 更多