java - 为什么当启动代码 X 的其他代码结束时,java 代码 X 会中断?
问题描述
我的 crontab 文件中有以下行:
*/ 8-21 * * * /usr/bin/xfce4-terminal --display=:0 -H --command="java -jar /full/path/to/myJarFile.jar"
这会在 8 到 22 小时之间每 10 分钟启动一次 jar 文件,并且运行良好。
在 java 代码中(在 myJarFile.jar 中)有以下几行:
String command = "/usr/bin/xfce4-terminal --display=:0 -H --command='java -jar /full/path/to/" + which + ".jar'";
String[] commandNArgs = new String[]{"/bin/sh", "-c", command};
Process p;
try {
p = Runtime.getRuntime().exec(commandNArgs);
} catch (Exception e) {
System.out.println("please restart");
}
这些行启动了几个 jar 文件,具体取决于 String "which" 的值。到目前为止,一切都很好。但是随后 myJarFile.jar 中的 java 代码结束了,它关闭了刚刚启动的“哪些代码”,尽管它们应该仍在运行......(如果我将命令/usr/bin/xfce4-terminal --display=:0 --command="java -jar /full/path/to/myJarFile.jar"
手动放在终端中,所有窗口都按预期保持打开状态.) 希望有人知道他们为什么关闭?
解决方案
推荐阅读
- android - GLSurfaceView 和 Sceneform 有什么区别?
- r - select.list() 的问题
- css - 我的实时 github 页面应用程序中没有出现 css 文件
- python - SQLAlchemy 无法安装
- algorithm - 贪心交易最小化算法的最优性
- javascript - 当某些日期为空时如何按日期对数组进行排序
- flutter - Flutter 和 Redux
- python - 如何正确使用 numpy hstack
- python - 我有 2 个元组列表,如何打印元组的第二个元素之间的差异,同时保持第一个元素相同?
- python-3.x - 如何使 Flasks index.html 从文件夹中获取文件