import{_ as t,o,c,a as e,b as n,e as a,d as i,r as l}from"./app.977e81c1.js";const d={},r=e("h1",{id:"arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#arthas-\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1","aria-hidden":"true"},"#"),a(" Arthas \u540E\u53F0\u5F02\u6B65\u4EFB\u52A1")],-1),p={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=cn&id=case-async-jobs",target:"_blank",rel:"noopener noreferrer"},u=e("code",null,"\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1",-1),h=a("\u5728\u7EBF\u6559\u7A0B"),b=a("arthas \u4E2D\u7684\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1\uFF0C\u4F7F\u7528\u4E86\u4EFF linux \u7CFB\u7EDF\u4EFB\u52A1\u76F8\u5173\u7684\u547D\u4EE4\u3002"),m={href:"https://ehlxr.me/2017/01/18/Linux-%E4%B8%AD-fg%E3%80%81bg%E3%80%81jobs%E3%80%81-%E6%8C%87%E4%BB%A4/",target:"_blank",rel:"noopener noreferrer"},g=a("linux \u4EFB\u52A1\u76F8\u5173\u4ECB\u7ECD"),v=a("\u3002"),_=i(`

1. \u4F7F\u7528&\u5728\u540E\u53F0\u6267\u884C\u4EFB\u52A1

\u6BD4\u5982\u5E0C\u671B\u6267\u884C\u540E\u53F0\u6267\u884C trace \u547D\u4EE4\uFF0C\u90A3\u4E48\u8C03\u7528\u4E0B\u9762\u547D\u4EE4

trace Test t &

\u8FD9\u65F6\u547D\u4EE4\u5728\u540E\u53F0\u6267\u884C\uFF0C\u53EF\u4EE5\u5728 console \u4E2D\u7EE7\u7EED\u6267\u884C\u5176\u4ED6\u547D\u4EE4\u3002

2. \u901A\u8FC7 jobs \u67E5\u770B\u4EFB\u52A1

\u5982\u679C\u5E0C\u671B\u67E5\u770B\u5F53\u524D\u6709\u54EA\u4E9B arthas \u4EFB\u52A1\u5728\u6267\u884C\uFF0C\u53EF\u4EE5\u6267\u884C jobs \u547D\u4EE4\uFF0C\u6267\u884C\u7ED3\u679C\u5982\u4E0B

$ 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)

\u53EF\u4EE5\u770B\u5230\u76EE\u524D\u6709\u4E00\u4E2A\u540E\u53F0\u4EFB\u52A1\u5728\u6267\u884C\u3002

3. \u4EFB\u52A1\u6682\u505C\u548C\u53D6\u6D88

\u5F53\u4EFB\u52A1\u6B63\u5728\u524D\u53F0\u6267\u884C\uFF0C\u6BD4\u5982\u76F4\u63A5\u8C03\u7528\u547D\u4EE4trace Test t\u6216\u8005\u8C03\u7528\u540E\u53F0\u6267\u884C\u547D\u4EE4trace Test t &\u540E\u53C8\u901A\u8FC7fg\u547D\u4EE4\u5C06\u4EFB\u52A1\u8F6C\u5230\u524D\u53F0\u3002\u8FD9\u65F6 console \u4E2D\u65E0\u6CD5\u7EE7\u7EED\u6267\u884C\u547D\u4EE4\uFF0C\u4F46\u662F\u53EF\u4EE5\u63A5\u6536\u5E76\u5904\u7406\u4EE5\u4E0B\u4E8B\u4EF6\uFF1A

4. fg\u3001bg \u547D\u4EE4\uFF0C\u5C06\u547D\u4EE4\u8F6C\u5230\u524D\u53F0\u3001\u540E\u53F0\u7EE7\u7EED\u6267\u884C

5. \u4EFB\u52A1\u8F93\u51FA\u91CD\u5B9A\u5411

\u53EF\u901A\u8FC7>\u6216\u8005>>\u5C06\u4EFB\u52A1\u8F93\u51FA\u7ED3\u679C\u8F93\u51FA\u5230\u6307\u5B9A\u7684\u6587\u4EF6\u4E2D\uFF0C\u53EF\u4EE5\u548C&\u4E00\u8D77\u4F7F\u7528\uFF0C\u5B9E\u73B0 arthas \u547D\u4EE4\u7684\u540E\u53F0\u5F02\u6B65\u4EFB\u52A1\u3002\u6BD4\u5982\uFF1A

$ trace Test t >> test.out &

\u8FD9\u65F6 trace \u547D\u4EE4\u4F1A\u5728\u540E\u53F0\u6267\u884C\uFF0C\u5E76\u4E14\u628A\u7ED3\u679C\u8F93\u51FA\u5230\u5E94\u7528\u5DE5\u4F5C\u76EE\u5F55\u4E0B\u9762\u7684test.out\u6587\u4EF6\u3002\u53EF\u7EE7\u7EED\u6267\u884C\u5176\u4ED6\u547D\u4EE4\u3002\u5E76\u53EF\u67E5\u770B\u6587\u4EF6\u4E2D\u7684\u547D\u4EE4\u6267\u884C\u7ED3\u679C\u3002\u53EF\u4EE5\u6267\u884Cpwd\u547D\u4EE4\u67E5\u770B\u5F53\u524D\u5E94\u7528\u7684\u5DE5\u4F5C\u76EE\u5F55\u3002

$ cat test.out

\u5982\u679C\u6CA1\u6709\u6307\u5B9A\u91CD\u5B9A\u5411\u6587\u4EF6\uFF0C\u5219\u4F1A\u628A\u7ED3\u679C\u8F93\u51FA\u5230~/logs/arthas-cache/\u76EE\u5F55\u4E0B\uFF0C\u6BD4\u5982\uFF1A

$ trace Test t >>  &
job id  : 2
cache location  : /Users/admin/logs/arthas-cache/28198/2

\u6B64\u65F6\u547D\u4EE4\u4F1A\u5728\u540E\u53F0\u5F02\u6B65\u6267\u884C\uFF0C\u5E76\u5C06\u7ED3\u679C\u5F02\u6B65\u4FDD\u5B58\u5728\u6587\u4EF6\uFF08~/logs/arthas-cache/\${PID}/\${JobId}\uFF09\u4E2D\uFF1B

6. \u505C\u6B62\u547D\u4EE4

\u5F02\u6B65\u6267\u884C\u7684\u547D\u4EE4\uFF0C\u5982\u679C\u5E0C\u671B\u505C\u6B62\uFF0C\u53EF\u6267\u884Ckill <job-id>

7. \u5176\u4ED6

`,27);function k(f,x){const s=l("ExternalLinkIcon");return o(),c("div",null,[r,e("p",null,[e("a",p,[u,h,n(s)])]),e("p",null,[b,e("a",m,[g,n(s)]),v]),_])}const E=t(d,[["render",k],["__file","async.html.vue"]]);export{E as default};