如何将 "kill -3 <jvm pid>" 标准输出单独重定向到 linux 和 unix 中的文件?
How to redirect the "kill -3 <jvm pid>" stdout to a file singly in linux and unix?
我在linux平台上启动了一个jvm进程,比如tomcat web容器。启动命令行:
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不适合。
如何编写一个良好的通用性工具包,将线程转储信息重定向到单个文件,而不是stdout文件?
标准unix进程保护策略的一部分是,在程序启动后,如果没有该程序的主动帮助,就不能再对其流进行重定向。
但是,如果你不在乎线程转储仍然在nohup.out
中,并且另外在其他文件中,你可以这样做:
tail -f nohup.out > my_new_threaddump &
kill -3 $pid_target_process
kill %+
感兴趣的是获取java线程转储的相关kill-3,包括Vadzim答案:
-XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log
然而,这与JRockit等不兼容(或者至少以前不兼容)——例如,请参阅http://blog.eisele.net/2011/01/running-glassfish-with-jrockit.html
相关文章:
- 如何将stdout重定向到stderr
- 编写时C++中的输入重定向问题
- 获取通过重定向传入的输入文件的名称?
- Windows C++重定向库
- 写入文件 a.txt,而终端重定向到文件 b.txt
- 使用 dup2() 进行输入重定向
- 将 clangd stderr 重定向到文件而不是控制台
- 如何在C++中获取重定向网页的URL
- 将标准输出重定向到ostream
- 如何撤消此代码上的 cin 重定向?
- 将 Linux system() 调用命令的输出重定向到仅可变的
- 使用 ubuntu Linux 的 c++ 文件重定向和编码问题
- 在Linux上将stdout重定向到文件时,C++程序无法产生输出
- 将文件的内容重定向为可执行文件linux的标准输入
- 在 linux 上使用命令行重定向(wiith <)将文件内容存储在字符串中?
- 如何将 "kill -3 <jvm pid>" 标准输出单独重定向到 linux 和 unix 中的文件?
- Linux,我可以重定向外部库的调试输出(.so)吗?
- 文件I/O在c++和linux命令行重定向
- 在Linux中使用循环中的dup2()和create()进行重定向
- 如何在c++和linux中将std::ostream重定向到文件或/dev/null