|
|
|
|
|
|
|
|
<!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">
|
|
|
|
|
|
<title>Arthas Async Jobs — Arthas 3.0.5 documentation</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="shortcut icon" href="_static/favicon.ico"/>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<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" />
|
|
|
<link rel="next" title="Log command outputs" href="save-log.html" />
|
|
|
<link rel="prev" title="Web Console" href="web-console.html" />
|
|
|
<script src="_static/center_page.js"></script>
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/github.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="_static/js/modernizr.min.js"></script>
|
|
|
|
|
|
</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">
|
|
|
<div class="wy-side-nav-search">
|
|
|
|
|
|
|
|
|
|
|
|
<a href="index.html" class="icon icon-home"> Arthas
|
|
|
|
|
|
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="version">
|
|
|
3.0.5
|
|
|
</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">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<ul class="current">
|
|
|
<li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li>
|
|
|
<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>
|
|
|
<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>
|
|
|
<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 & 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>
|
|
|
<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>
|
|
|
<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>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="commands.html">Commands</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="docker.html">Docker</a></li>
|
|
|
<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>
|
|
|
<li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li>
|
|
|
<li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li>
|
|
|
</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> »</li>
|
|
|
|
|
|
<li><a href="advanced-use.html">Advanced Usage</a> »</li>
|
|
|
|
|
|
<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">
|
|
|
<span id="arthas-async-jobs"></span><h1>Arthas Async Jobs<a class="headerlink" href="#arthas-async-jobs" title="Permalink to this headline">¶</a></h1>
|
|
|
<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>
|
|
|
<div class="section" id="use-to-run-the-command-in-the-background">
|
|
|
<span id="use-to-run-the-command-in-the-background"></span><h2>1. Use & 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>
|
|
|
<p>For example, execute the trace command in the background:</p>
|
|
|
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">trace Test t &
|
|
|
</pre></div>
|
|
|
</div>
|
|
|
<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>
|
|
|
</div>
|
|
|
<div class="section" id="list-background-jobs">
|
|
|
<span id="list-background-jobs"></span><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 <tt class="docutils literal">jobs</tt> command and the results are as follows:</p>
|
|
|
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ jobs
|
|
|
[10]*
|
|
|
Stopped watch com.taobao.container.Test test "params[0].{? #this.name == null }" -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
|
|
|
session : 3648e874-5e69-473f-9eed-7f89660b079b (current)
|
|
|
</pre></div>
|
|
|
</div>
|
|
|
<p>You can see that there is currently a background job executing:</p>
|
|
|
<ul class="simple">
|
|
|
<li>job id is 10, <tt class="docutils literal">*</tt> indicates that this job is created by the current session.</li>
|
|
|
<li>status is <tt class="docutils literal">Stopped</tt></li>
|
|
|
<li>execution count is the number of executions, which have been executed 19 times since the start.</li>
|
|
|
<li>timeout date: timeout timestamp, when the time exceeds this timestamp, the job will be automatically timeout and exit.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="section" id="suspend-and-cancel-job">
|
|
|
<span id="suspend-and-cancel-job"></span><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 <tt class="docutils literal">trace Test t</tt>, or executing the background job command <tt class="docutils literal">trace Test t &</tt>, then putting the job back to the foreground via <tt class="docutils literal">fg</tt> command, the console cannot continue to execute other command, but can receive and process the following keyboard events:</p>
|
|
|
<ul class="simple">
|
|
|
<li>‘ctrl + z’: Suspend the job, the job status will change to <tt class="docutils literal">Stopped</tt>, and the job can be restarted by <tt class="docutils literal">bg <job-id></tt> or <tt class="docutils literal">fg <job-id></tt></li>
|
|
|
<li>‘ctrl + c’: Stop the job</li>
|
|
|
<li>‘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.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="section" id="fg-bg-switch-the-job-from-the-foreground-to-the-background-and-vise-verse">
|
|
|
<span id="fg-bg-switch-the-job-from-the-foreground-to-the-background-and-vise-verse"></span><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>
|
|
|
<ul class="simple">
|
|
|
<li>When a job is executed in the background or in suspended status (use <tt class="docutils literal">ctrl + z</tt> to suspend job), <tt class="docutils literal">fg <job-id></tt> can transfer the job to the foreground to continue to run.</li>
|
|
|
<li>When a job is in suspended status (use <tt class="docutils literal">ctrl + z</tt> to suspend job), <tt class="docutils literal">bg <job-id></tt> can put the job to the background to continue to run.</li>
|
|
|
<li>A job created by other session can only be put to the foreground to run by using <tt class="docutils literal">fg</tt> in the current session.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="section" id="redirect-the-output">
|
|
|
<span id="redirect-the-output"></span><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 <tt class="docutils literal">></tt> or <tt class="docutils literal">>></tt>, and can be used together with <tt class="docutils literal">&</tt>. 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 >> test.out &
|
|
|
</pre></div>
|
|
|
</div>
|
|
|
<p>The trace command will be running in the background and the output will be redirect to <tt class="docutils literal">~/logs/arthas-cache/test.out</tt>. 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>
|
|
|
<p>When connect 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>
|
|
|
<div class="highlight-bash notranslate"><div class="highlight hljs"><pre class="bash">$ trace Test t >> &
|
|
|
job id : 2
|
|
|
cache location : /Users/gehui/logs/arthas-cache/28198/2
|
|
|
</pre></div>
|
|
|
</div>
|
|
|
<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 <tt class="docutils literal">28198</tt> and job id is <tt class="docutils literal">2</tt>.</p>
|
|
|
</div>
|
|
|
<div class="section" id="stop-job">
|
|
|
<span id="stop-job"></span><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 <tt class="docutils literal">kill <job-id></tt>.</p>
|
|
|
</div>
|
|
|
<div class="section" id="others">
|
|
|
<span id="others"></span><h2>7. Others<a class="headerlink" href="#others" title="Permalink to this headline">¶</a></h2>
|
|
|
<ul class="simple">
|
|
|
<li>Support up to 8 commands at the same time to redirect the output to the log files.</li>
|
|
|
<li>Do not open too many background jobs at the same time to avoid negative performance effect to the target JVM.</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<footer>
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
|
<a href="web-console.html" class="btn btn-neutral" title="Web Console" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
<div role="contentinfo">
|
|
|
<p>
|
|
|
© Copyright 2018, Alibaba Middleware Group, and contributors.
|
|
|
|
|
|
</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">
|
|
|
var DOCUMENTATION_OPTIONS = {
|
|
|
URL_ROOT:'./',
|
|
|
VERSION:'3.0.5',
|
|
|
LANGUAGE:'en',
|
|
|
COLLAPSE_INDEX:false,
|
|
|
FILE_SUFFIX:'.html',
|
|
|
HAS_SOURCE: true,
|
|
|
SOURCELINK_SUFFIX: '.txt'
|
|
|
};
|
|
|
</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="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
|
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="_static/js/theme.js"></script>
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
jQuery(function () {
|
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|
|
});
|
|
|
</script>
|
|
|
<div class="github-fork-ribbon-wrapper right">
|
|
|
<div class="github-fork-ribbon">
|
|
|
<a href="https://github.com/alibaba/arthas">Fork me at GitHub</a>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript" src="_static/add_badges.js"></script>
|
|
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlightjs-line-numbers.js/2.5.0/highlightjs-line-numbers.min.js"></script>
|
|
|
<script>
|
|
|
document.querySelectorAll('div.hljs > pre').forEach(function(block) {
|
|
|
hljs.highlightBlock(block);
|
|
|
hljs.lineNumbersBlock(block);
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<script>
|
|
|
var _hmt = _hmt || [];
|
|
|
(function() {
|
|
|
var hm = document.createElement("script");
|
|
|
hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4";
|
|
|
var s = document.getElementsByTagName("script")[0];
|
|
|
s.parentNode.insertBefore(hm, s);
|
|
|
})();
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
</html> |