You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/en/async.html

363 lines
19 KiB
HTML

6 years ago
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5 years ago
<title>Arthas Async Jobs &mdash; Arthas 3.3.7 documentation</title>
6 years ago
<link rel="shortcut icon" href="_static/favicon.ico"/>
5 years ago
<script type="text/javascript" src="_static/js/modernizr.min.js"></script>
6 years ago
5 years ago
<script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/language_data.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
6 years ago
5 years ago
6 years ago
5 years ago
6 years ago
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/overrides.css" type="text/css" />
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
6 years ago
<link rel="next" title="Log command outputs" href="save-log.html" />
5 years ago
<link rel="prev" title="Start as a Java Agent" href="agent.html" />
6 years ago
<script src="_static/center_page.js"></script>
5 years ago
<link rel="stylesheet" href="https://g.alicdn.com/code/lib/highlight.js/9.13.1/styles/github.min.css">
6 years ago
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
5 years ago
<div class="wy-side-nav-search" >
6 years ago
<a href="index.html" class="icon icon-home"> Arthas
</a>
<div class="version">
5 years ago
3.3.7
6 years ago
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
6 years ago
<ul class="current">
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://alibaba.github.io/arthas/arthas-tutorials?language=en">Online tutorials(Recommend)</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="download.html">Download</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
6 years ago
<li class="toctree-l1 current"><a class="reference internal" href="advanced-use.html">Advanced usage</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#basic">Basic</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#jvm">JVM</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#class-classloader">class/classloader</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#monitor-watch-trace-related">monitor/watch/trace - related</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#options">options</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#profiler-flame-graph">profiler/flame graph</a></li>
6 years ago
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#pipe">pipe</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#async-in-background">async in background</a></li>
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#web-console">Web Console</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#start-as-a-java-agent">Start as a Java Agent</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#as-sh-and-arthas-boot-tips">as.sh and arthas-boot tips</a></li>
5 years ago
<li class="toctree-l2"><a class="reference internal" href="advanced-use.html#user-data-report">User data report</a></li>
6 years ago
<li class="toctree-l2 current"><a class="reference internal" href="advanced-use.html#other-features">Other features</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">Async support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#use-to-run-the-command-in-the-background">1. Use &amp; to run the command in the background</a></li>
<li class="toctree-l4"><a class="reference internal" href="#list-background-jobs">2. List background jobs</a></li>
6 years ago
<li class="toctree-l4"><a class="reference internal" href="#suspend-and-cancel-job">3. Suspend and cancel job</a></li>
<li class="toctree-l4"><a class="reference internal" href="#fg-bg-switch-the-job-from-the-foreground-to-the-background-and-vise-verse">4. fg/bg, switch the job from the foreground to the background, and vise verse</a></li>
<li class="toctree-l4"><a class="reference internal" href="#redirect-the-output">5. Redirect the output</a></li>
6 years ago
<li class="toctree-l4"><a class="reference internal" href="#stop-job">6. Stop job</a></li>
<li class="toctree-l4"><a class="reference internal" href="#others">7. Others</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="save-log.html">log the output</a></li>
<li class="toctree-l3"><a class="reference internal" href="batch-support.html">batch</a></li>
<li class="toctree-l3"><a class="reference external" href="https://github.com/alibaba/arthas/issues/11">how to use ognl</a></li>
</ul>
</li>
</ul>
</li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="web-console.html">WebConsole</a></li>
6 years ago
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="spring-boot-starter.html">Arthas Spring Boot Starter</a></li>
6 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li>
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li>
5 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md#">Compile and debug/CONTRIBUTING</a></li>
5 years ago
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/releases">Release Notes</a></li>
5 years ago
<li class="toctree-l1"><a class="reference internal" href="contact-us.html">Contact us</a></li>
6 years ago
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Arthas</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
6 years ago
<li><a href="advanced-use.html">Advanced Usage</a> &raquo;</li>
6 years ago
<li>Arthas Async Jobs</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/en/async.md" class="fa fa-github"> Edit on GitHub</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="arthas-async-jobs">
5 years ago
<h1>Arthas Async Jobs<a class="headerlink" href="#arthas-async-jobs" title="Permalink to this headline"></a></h1>
6 years ago
<p>Asynchronous jobs in arthas. The idea is borrowed from <a class="reference external" href="http://man7.org/linux/man-pages/man1/jobs.1p.html">linux jobs</a>.</p>
6 years ago
<div class="section" id="use-to-run-the-command-in-the-background">
5 years ago
<h2>1. Use &amp; to run the command in the background<a class="headerlink" href="#use-to-run-the-command-in-the-background" title="Permalink to this headline"></a></h2>
6 years ago
<p>For example, execute the trace command in the background:</p>
5 years ago
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">trace Test t &amp; </pre></div>
6 years ago
</div>
6 years ago
<p>By doing this, the current command is put to the background to run, you can continue to execute other commands in the console.</p>
6 years ago
</div>
<div class="section" id="list-background-jobs">
5 years ago
<h2>2. List background jobs<a class="headerlink" href="#list-background-jobs" title="Permalink to this headline"></a></h2>
<p>If you want to list all background jobs, you can execute the <code class="docutils literal notranslate"><span class="pre">jobs</span></code> command and the results are as follows:</p>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ jobs
[10]*
Stopped watch com.taobao.container.Test test &quot;params[0].{? #this.name == null }&quot; -x 2
execution count : 19
start time : Fri Sep 22 09:59:55 CST 2017
timeout date : Sat Sep 23 09:59:55 CST 2017
5 years ago
session : 3648e874-5e69-473f-9eed-7f89660b079b (current)</pre></div>
6 years ago
</div>
6 years ago
<p>You can see that there is currently a background job executing:</p>
6 years ago
<ul class="simple">
5 years ago
<li><p>job id is 10, <code class="docutils literal notranslate"><span class="pre">*</span></code> indicates that this job is created by the current session.</p></li>
<li><p>status is <code class="docutils literal notranslate"><span class="pre">Stopped</span></code></p></li>
<li><p>execution count is the number of executions, which have been executed 19 times since the start.</p></li>
<li><p>timeout date: timeout timestamp, when the time exceeds this timestamp, the job will be automatically timeout and exit.</p></li>
6 years ago
</ul>
</div>
6 years ago
<div class="section" id="suspend-and-cancel-job">
5 years ago
<h2>3. Suspend and cancel job<a class="headerlink" href="#suspend-and-cancel-job" title="Permalink to this headline"></a></h2>
<p>When the job is executing in the foreground, for example, directly executing the command <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">Test</span> <span class="pre">t</span></code>, or executing the background job command <code class="docutils literal notranslate"><span class="pre">trace</span> <span class="pre">Test</span> <span class="pre">t</span> <span class="pre">&amp;</span></code>, then putting the job back to the foreground via <code class="docutils literal notranslate"><span class="pre">fg</span></code> command, the console cannot continue to execute other command, but can receive and process the following keyboard events:</p>
6 years ago
<ul class="simple">
5 years ago
<li><p>ctrl + z: Suspends the job, the job status will change to <code class="docutils literal notranslate"><span class="pre">Stopped</span></code>, and the job can be restarted by <code class="docutils literal notranslate"><span class="pre">bg</span> <span class="pre">&lt;job-id&gt;</span></code> or <code class="docutils literal notranslate"><span class="pre">fg</span> <span class="pre">&lt;job-id&gt;</span></code></p></li>
<li><p>ctrl + c: Stops the job</p></li>
5 years ago
<li><p>ctrl + d: According to linux semantics this should lead to exit the terminal, right now Arthas has not implemented this yet, therefore simply ignore this keystroke.</p></li>
6 years ago
</ul>
</div>
6 years ago
<div class="section" id="fg-bg-switch-the-job-from-the-foreground-to-the-background-and-vise-verse">
5 years ago
<h2>4. fg/bg, switch the job from the foreground to the background, and vise verse<a class="headerlink" href="#fg-bg-switch-the-job-from-the-foreground-to-the-background-and-vise-verse" title="Permalink to this headline"></a></h2>
6 years ago
<ul class="simple">
5 years ago
<li><p>When a job is executed in the background or in suspended status (use <code class="docutils literal notranslate"><span class="pre">ctrl</span> <span class="pre">+</span> <span class="pre">z</span></code> to suspend job), <code class="docutils literal notranslate"><span class="pre">fg</span> <span class="pre">&lt;job-id&gt;</span></code> can transfer the job to the foreground to continue to run.</p></li>
<li><p>When a job is in suspended status (use <code class="docutils literal notranslate"><span class="pre">ctrl</span> <span class="pre">+</span> <span class="pre">z</span></code> to suspend job), <code class="docutils literal notranslate"><span class="pre">bg</span> <span class="pre">&lt;job-id&gt;</span></code> can put the job to the background to continue to run.</p></li>
<li><p>A job created by other session can only be put to the foreground to run by using <code class="docutils literal notranslate"><span class="pre">fg</span></code> in the current session.</p></li>
6 years ago
</ul>
</div>
6 years ago
<div class="section" id="redirect-the-output">
5 years ago
<h2>5. Redirect the output<a class="headerlink" href="#redirect-the-output" title="Permalink to this headline"></a></h2>
<p>The job output can be redirect to the specified file by <code class="docutils literal notranslate"><span class="pre">&gt;</span></code> or <code class="docutils literal notranslate"><span class="pre">&gt;&gt;</span></code>, and can be used together with <code class="docutils literal notranslate"><span class="pre">&amp;</span></code>. By doing this, you can achieve running commands asynchronously, for example:</p>
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t &gt;&gt; test.out &amp;</pre></div>
6 years ago
</div>
5 years ago
<p>The trace command will be running in the background and the output will be redirect to <code class="docutils literal notranslate"><span class="pre">~/logs/arthas-cache/test.out</span></code>. You can continue to execute other commands in the console, at the same time, you can also examine the execution result from the output file.</p>
5 years ago
<p>When connected to a remote Arthas server, you may not be able to view the output file on the remote machine. In this case, Arthas also supports automatically redirecting the output to the local cache file. Examples are as follows:</p>
6 years ago
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t &gt;&gt; &amp;
job id : 2
5 years ago
cache location : /Users/gehui/logs/arthas-cache/28198/2</pre></div>
6 years ago
</div>
5 years ago
<p>If output path is not given, Arthas will automatically redirect the output to the local cache. Job id and cache location will be shown on the console. Cache location is a directory where the output files are put. For one given job, the path of its output file contains PID and job id in order to avoid potential conflict with other jobs. In the above example, pid is <code class="docutils literal notranslate"><span class="pre">28198</span></code> and job id is <code class="docutils literal notranslate"><span class="pre">2</span></code>.</p>
6 years ago
</div>
<div class="section" id="stop-job">
5 years ago
<h2>6. Stop job<a class="headerlink" href="#stop-job" title="Permalink to this headline"></a></h2>
<p>If you want to stop background job, just <code class="docutils literal notranslate"><span class="pre">kill</span> <span class="pre">&lt;job-id&gt;</span></code>.</p>
6 years ago
</div>
<div class="section" id="others">
5 years ago
<h2>7. Others<a class="headerlink" href="#others" title="Permalink to this headline"></a></h2>
6 years ago
<ul class="simple">
5 years ago
<li><p>Support up to 8 commands at the same time to redirect the output to the log files.</p></li>
<li><p>Do not open too many background jobs at the same time to avoid negative performance effect to the target JVM.</p></li>
5 years ago
<li><p>If you do not want to stop the Arthas service and continue to perform background tasks, you can exit the Arthas console by executing <code class="docutils literal notranslate"><span class="pre">quit</span></code> command (<code class="docutils literal notranslate"><span class="pre">stop</span></code> command will stop the Arthas service)</p></li>
6 years ago
</ul>
</div>
</div>
</div>
</div>
<footer>
6 years ago
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="save-log.html" class="btn btn-neutral float-right" title="Log command outputs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
5 years ago
<a href="agent.html" class="btn btn-neutral float-left" title="Start as a Java Agent" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
6 years ago
</div>
6 years ago
<hr/>
<div role="contentinfo">
<p>
5 years ago
&copy; Copyright 2018-2020, Alibaba Middleware Group, and contributors
6 years ago
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
5 years ago
6 years ago
<div class="github-fork-ribbon-wrapper right">
<div class="github-fork-ribbon">
6 years ago
<a href="https://github.com/alibaba/arthas" target="_blank">Fork me at GitHub</a>
6 years ago
</div>
</div>
<script type="text/javascript" src="_static/add_badges.js"></script>
5 years ago
<script src="https://g.alicdn.com/code/lib/highlight.js/9.13.1/highlight.min.js"></script>
<script src="https://g.alicdn.com/code/lib/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js"></script>
6 years ago
<script>
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
hljs.highlightBlock(block);
hljs.lineNumbersBlock(block);
});
</script>
6 years ago
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
5 years ago
if (window.location.hostname == "arthas.gitee.io") {
hm.src = "https://hm.baidu.com/hm.js?ecc1b0d9aeb73da1671876133211d4d3";
} else { // https://alibaba.github.io/arthas/
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
}
6 years ago
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</body>
</html>