run-y

run-y 是專門執行 Ylang 指令碼的工具。它實際上封裝了orxray ylang命令,但是使用起來更加方便。

使用方法

Usage: run-y [OPTIONS] [ylang file]

OPTIONS:
    -a, --agent integer                Agent ID. Specify the agent to run the ylang script.
    -e string                          Y language script. Only one of ylang file and -e option can be specified.
    -v, --verbose                      Print verbose informations.
    -q, --quiet                        Avoid print verbose informations.
    --print-job-uri                    Print the job uri after running the script.
    -p, --pid integer                  Target process ID.  Specify the process ID to be analyzed by the ylang.
    -f, --file string                  Process file. Specify the path to the process file to be analyzed in ylang.
    -c, --command string               Command will be run and the process will be analyzed by ylang.
    --cmd-args string                  Specify the command args when you use command mode.

示例

1. 使用 -e 選項,執行 Ylang 語句

你可以使用-e選項指定並執行一段 Ylang 語句。

$ run-y -e '_probe _begin { printf("Hello, world!\n"); _exit(); }'
Start tracing...
Hello, world!

2. 執行 Ylang 指令碼

首先請準備一個 Ylang 指令碼。

$ cat hello.y
_probe _begin { printf("Hello, world!\n"); _exit(); }

然後就可以使用下面的命令來執行它。

$ run-y hello.y
Start tracing...
Hello, world!

3. 使用 -a 選項來指定

$ run-y hello.y -a 1294
Start tracing...
Hello, world!

4. 顯示詳細資訊

可以使用 -v 選項來列印更加詳細的資訊。

$ run-y hello.y -v
info: start to run job(4371497725) on the console side
info: job directory: 2021-12-08/07/job-4371497725
info: analyze the whole system
info: job runtime: stap
info: start to compile opslang in cli-tool-34539
info: sending the compiled opslang to agent
info: agent: start to run the tool: cli-tool-34539
info: agent: start to collect process build info
info: agent: build info hit the cache
info: agent: orxray_cli_tool_87441_XXXXXXX.ko hit the cache
info: agent: start to run the tool
info: agent: running tool cli-tool-34539 ...
Start tracing...
Hello, world!
real    0m0.382s
user    0m0.013s
sys     0m0.043s

5. 列印任務 URI

使用--print-job-uri選項, 指令碼執行完畢後會列印任務 URI。

你可以訪問這個 URI 來獲取任務詳細資訊。

$ run-y hello.y --print-job-uri
Start tracing...
Hello, world!
Goto https://xxxx.xray.xxx.com.cn/targets/1294/history/4371497759