【发布时间】:2015-07-31 00:34:19
【问题描述】:
我有一个在命令行 (Bash Linux) 上执行的 java 程序。一旦执行,程序将继续运行,读取标准输入,直到用户输入“退出”。
有时我想nohup 程序,这样即使我的远程连接关闭,它也能继续运行。问题是,当我尝试如下所示对程序进行 nohup 时,似乎它对 stdin 的提示会杀死 nohup 并终止程序。
示例:$ nohup java -jar myApp.jar
我已尝试根据其他建议将程序的输出重定向到 2>/dev/null,并使用 & 在后台运行它。两者都不能防止 nohup 被杀死。
我不能使用 disown,因为一旦我运行该程序,我就会失去该程序的命令提示符。
【问题讨论】:
-
有什么理由不使用
tmux或screen代替吗?你也许可以通过这种方式回避这个问题。 -
@MaximillianLaumeister 谢谢,我实际上并不熟悉这些。我目前都没有安装。我想我会得到屏幕并试一试。
-
我个人会推荐
tmux,因为在我看来它比screen更易于使用。如果你给我一分钟,我会写一个答案,告诉你如何使用它。