【发布时间】:2010-01-20 14:58:08
【问题描述】:
我正在使用java what.ever.Class & 在后台启动一个 java 程序。它在第一行抛出异常并打印出堆栈。
我希望 java 进程在那时退出,但由于某种原因它一直在那里等待(没有代码运行,没有产生线程等)。它不是僵尸,因为它在第一个 SIGTERM 时正确退出。它没有立即退出的原因可能是什么?
添加:
实际上,并非每次都会发生这种情况。如果我从命令行运行命令 - 它退出就好了。如果从脚本运行相同的命令(脚本只是 #!/bin/sh / java what.ever.Class &),那么它会留在后台。
nohup 和重定向不起作用。
使用 Debian,OpenJDK 运行时环境 (IcedTea6 1.6.1) (6b16-1.6.1-2) / OpenJDK 64 位服务器 VM(内部版本 14.0-b16,混合模式)。 sh 实际上是破折号。
【问题讨论】:
-
我们是否应该在没有看到
what.ever.Class的样子的情况下进行猜测? -
我不推荐使用
Class作为类名:-P -
@skaffman - 是的,因为没关系 - 我说它会在第一行引发异常。
main() {throw new Exception();}如果你真的需要它;) -
或许您应该知道您使用的是哪个 Java 版本和操作系统?
-
@jarnbjo - 现在将信息添加到问题中。
标签: java linux process background