(window.webpackJsonp=window.webpackJsonp||[]).push([[49],{495:function(t,a,s){"use strict";s.r(a);var e=s(26),n=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"dynamic-install-and-uninstall-script-user-manual"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#dynamic-install-and-uninstall-script-user-manual"}},[t._v("#")]),t._v(" Dynamic Install and Uninstall Script User Manual")]),t._v(" "),a("p",[a("a",{attrs:{href:"https://github.com/sermant-io/Sermant/blob/develop/scripts/attach.c",target:"_blank",rel:"noopener noreferrer"}},[t._v("Sermant dynamic installation and uninstallation scripts"),a("OutboundLink")],1),t._v(" is a C language script implemented based on the Java Attach API, which can mount sermant to "),a("strong",[t._v("JVM process on a virtual machine")]),t._v(" or  "),a("strong",[t._v("JVM process on a container")]),t._v(".")]),t._v(" "),a("blockquote",[a("p",[t._v("Note: This script is only available for use on "),a("strong",[t._v("Linux systems")])])]),t._v(" "),a("h2",{attrs:{id:"parameter-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#parameter-configuration"}},[t._v("#")]),t._v(" Parameter configuration")]),t._v(" "),a("ul",[a("li",[a("p",[a("code",[t._v("-path=")]),t._v("：Required parameter, followed by the "),a("strong",[t._v("absolute path of servant-agent.jar")])])]),t._v(" "),a("li",[a("p",[a("code",[t._v("-pid=")]),t._v("：Required parameter, followed by the host application's PID, can be viewed using commands such as "),a("code",[t._v("ps - ef")])])]),t._v(" "),a("li",[a("p",[a("code",[t._v("-command=")]),t._v("：Required parameter, followed by the instruction to mount the servant. The supported instructions can be found in the "),a("RouterLink",{attrs:{to:"/en/document/faq/servant-agent.html"}},[t._v("Sermant-agent User Manual")])],1)]),t._v(" "),a("li",[a("p",[a("code",[t._v("-nspid=")]),t._v("：When the host application container is running, it is a required parameter, followed by the host application's nspid, which can be viewed using the "),a("code",[t._v("cat/proc/{pid}/status")]),t._v(" command. Do not fill in this parameter when the host application is running on a virtual machine")])])]),t._v(" "),a("h2",{attrs:{id:"steps-for-using-scripts"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#steps-for-using-scripts"}},[t._v("#")]),t._v(" Steps for using scripts")]),t._v(" "),a("h3",{attrs:{id:"_1-compile-jvm-attach-c"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-compile-jvm-attach-c"}},[t._v("#")]),t._v(" 1. Compile "),a("code",[t._v("jvm_attach.c")])]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("gcc attach.c "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-o")]),t._v(" attach\n")])])]),a("blockquote",[a("p",[t._v("Note: Please ensure that gcc has been installed")])]),t._v(" "),a("h3",{attrs:{id:"_2-execute-attach-script"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-execute-attach-script"}},[t._v("#")]),t._v(" 2. Execute attach script")]),t._v(" "),a("div",{staticClass:"language-bash extra-class"},[a("pre",{pre:!0,attrs:{class:"language-bash"}},[a("code",[t._v("./attach "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-path")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("sermant-path"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("/sermant-agent.jar "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-pid")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("pid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token parameter variable"}},[t._v("-command")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("COMMAND"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])])]),a("p",[t._v("The execution status of the script is as follows:")]),t._v(" "),a("div",{staticClass:"language-shell extra-class"},[a("pre",{pre:!0,attrs:{class:"language-shell"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("root@b6b9af8e5610 root"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("# ./attach -path=/home/sermant-agent-1.0.0/agent/sermant-agent.jar -pid=494 -command=INSTALL-PLUGINS:database-write-prohibition")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("INFO"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(": "),a("span",{pre:!0,attrs:{class:"token environment constant"}},[t._v("PATH")]),a("span",{pre:!0,attrs:{class:"token builtin class-name"}},[t._v(":")]),t._v(" /home/sermant-agent-1.0.0/agent/sermant-agent.jar\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("INFO"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(": PID: "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("494")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("INFO"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(": COMMAND: INSTALL-PLUGINS:database-write-prohibition\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("INFO"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(": Connected to remote JVM of pid "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("494")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("INFO"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(": ret code is "),a("span",{pre:!0,attrs:{class:"token number"}},[t._v("0")]),t._v(", Attach success"),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("!")]),t._v("\n")])])])])}),[],!1,null,null,null);a.default=n.exports}}]);