mirror of
https://gitee.com/arthas/arthas.git
synced 2024-12-04 05:09:54 +08:00
2.6 KiB
2.6 KiB
Similar to executing batch commands, the one-time commands are executed
synchronously. No need to create a session, no need to set the
sessionId
option.
{
"action": "exec",
"command": "<Arthas command line>"
}
For example, get the Arthas version number:
curl -Ss -XPOST http://localhost:8563/api -d ' { "action":"exec", "command":"version" } ' | json_pp
{{execute T3}}
The response is as follows:
{
"state" : "SUCCEEDED",
"sessionId" : "ee3bc004-4586-43de-bac0-b69d6db7a869",
"body" : {
"results" : [
{
"type" : "version",
"version" : "3.3.7",
"jobId" : 5
},
{
"jobId" : 5,
"statusCode" : 0,
"type" : "status"
}
],
"timeExpired" : false,
"command" : "version",
"jobStatus" : "TERMINATED",
"jobId" : 5
}
}
Response data format description:
state
: Request processing status, refer to the description of "Response Status".sessionId
: Arthas session ID, one-time command to automatically create and destroy temporary sessions.body.jobId
: The job ID of the command, all output results of the same job are the same jobId.body.jobStatus
: The job status of the command.body.timeExpired
: Whether the job execution timed out.body/results
: Command execution results.
Command result format description
[{
"type" : "version",
"version" : "3.3.7",
"jobId" : 5
},
{
"jobId" : 5,
"statusCode" : 0,
"type" : "status"
}]
type
: The command result type, except for the special ones such asstatus
, the others remain the same as the Arthas command name. Please refer to the section "Special command results".jobId
: The job ID of the command.- Other fields are the data of each different command.
Note: You can also use a one-time command to execute continuous output commands such as watch/trace, but you can't interrupt the command execution, and there may be hang up for a long time. Please refer to the example in the "Make watch command output a map object" section.
Please try to deal with it in the following way:
- Set a reasonable
execTimeout
to forcibly interrupt the command execution after the timeout period is reached to avoid a long hang. - Use the
-n
parameter to specify a smaller number of executions. - Ensure the methods of the command matched can be successfully hit and
the
condition-express
is written correctly. If thewatch/trace
does not hit, even if-n 1
is specified, it will hang and wait until the execution timeout.