Java 如何重新定向;杀死-3<;jvmpid>&引用;在linux和unix中,是否分别将标准数据转换为文件?

Java 如何重新定向;杀死-3<;jvmpid>&引用;在linux和unix中,是否分别将标准数据转换为文件?,java,c++,c,linux,jvm,Java,C++,C,Linux,Jvm,我在linux平台上启动了一个jvm进程,比如TomcatWebContainer。 启动命令行: nohup sh>nohup.out 2>&1& 当我执行“kill-3”命令时,线程转储信息将输出到nohup.out文件 如何将输出重定向到单个文件 Sun HotSpot JVM是jdk 1.5自带的工具包,名为jstack,使用Sun HotSpot JVM非常有用,但JRockit JVM和HP HotSpot JVM、IBM J9 VM并不适用 如何编写一个好的通用性工具包,将线程转储

我在linux平台上启动了一个jvm进程,比如TomcatWebContainer。 启动命令行:

nohup sh>nohup.out 2>&1&

当我执行“kill-3”命令时,线程转储信息将输出到nohup.out文件

如何将输出重定向到单个文件

Sun HotSpot JVM是jdk 1.5自带的工具包,名为jstack,使用Sun HotSpot JVM非常有用,但JRockit JVM和HP HotSpot JVM、IBM J9 VM并不适用


如何编写一个好的通用性工具包,将线程转储信息重定向到单个文件,而不是标准文件

标准unix进程保护策略的一部分是,在程序启动后,如果没有该程序的积极帮助,将无法对其流执行更多重定向

但是,如果您不关心threaddump是否仍在
nohup.out
中,或者在其他文件中,您可以这样做:

tail -f nohup.out > my_new_threaddump &
kill -3 $pid_target_process
kill %+

感兴趣的是相关的,包括Vadzim回答:

-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log

但是,这与JRockit等不兼容(或至少以前不兼容),例如,请参见

它指的是上一个startend后台作业。请参阅
manbash
搜索
jobspec