我已經運行遠程測試服務器,我想使用byteman對現有代碼進行一些修改。如何在運行時更改byteman的規則
是否有可能在運行時將自定義規則文件附加byteman(啓動時我們應該設置規則文件,這在大多數情況下不靈活)?
在啓動服務器時,是否可以將它連接到正在運行的服務器而不添加-javaagent?
我已經運行遠程測試服務器,我想使用byteman對現有代碼進行一些修改。如何在運行時更改byteman的規則
是否有可能在運行時將自定義規則文件附加byteman(啓動時我們應該設置規則文件,這在大多數情況下不靈活)?
在啓動服務器時,是否可以將它連接到正在運行的服務器而不添加-javaagent?
有一個非常詳細的教程,網址是:https://community.jboss.org/wiki/ABytemanTutorial#how_do_i_install_the_agent_into_a_running_program
隨着教程提到的,你可以使用bminstall.sh隨時安裝byteman代理運行的JVM,安裝byteman劑後,您可以使用bmsubmit.sh將一個byteman腳本提交給JVM。
例如:
步驟1:
bminstall.sh -h 192.168.0.1 -p 8080 -b -Dorg.jboss.byteman.transform.all 12345
在上述命令中的參數12345是您的java程序ID的PID
步驟2:
bmsubmit.sh -h 192.168.0.1 -p 8080 -l abc.btm
有關這些命令的更詳細用法,請參閱相應的命令幫助。
此外,還有一個程序員指南(PDF):http://downloads.jboss.org/byteman/2.1.3/ProgrammersGuide-2.1.3.1.pdf