文章目录
- 58 KVM工具使用指南-应用 LibcarePlus 热补丁
- 58.1 前期准备
- 58.2 加载热补丁
- 58.3 查询补丁
- 58.4 卸载热补丁
58 KVM工具使用指南-应用 LibcarePlus 热补丁
本节以原文件 foo.c 和补丁文件 bar.c 为例,介绍 LibcarePlus 热补丁的应用指导。
58.1 前期准备
应用 LibcarePlus 热补丁之前,需要提前准备好原可执行程序 foo、以及热补丁文件 foo.kpatch。
58.2 加载热补丁
本节介绍应用 LibcarePlus 热补丁的具体流程。
-
首先在第一个 shell 窗口运行需要打补丁的可执行程序,如下所示:
# ./lpmake/foo Hello world! Hello world! Hello world!
-
随后在第二个 shell 窗口运行 libcare-ctl 应用热补丁,命令如下所示:
# libcare-ctl -v patch -p $(pidof foo) ./patchroot/BuildID.kpatch
若此时热补丁应用成功,第二个 shell 窗口会有如下输出:
1 patch hunk(s) have been successfully applied to PID '10999'
而第一个 shell 窗口内运行的目标进程则会出现如下输出:
Hello world! Hello world! Hello world being patched! Hello world being patched!
58.3 查询补丁
本节介绍查询LibcarePlus热补丁的具体流程。
在第二个shell窗口执行如下命令:
# libcare-ctl info -p $(pidof foo)
此时若进程存在已经加载的热补丁,则第二个shell窗口会有如下输出:
Pid: 551763
Target: foo
Build id: df05a25bdadd282812d3ee5f0a460e69038575de
Applied patch number: 1
Patch id: 0001
58.4 卸载热补丁
本节介绍卸载 LibcarePlus 热补丁的具体流程。
在第二个 shell 窗口执行如下命令:
# libcare-ctl unpatch -p $(pidof foo) -i 0001
此时若热补丁卸载成功,第二个 shell 窗口会有如下输出:
1 patch hunk(s) were successfully cancelled from PID '10999'
第一个 shell 窗口内运行的目标进程则会出现如下输出:
Hello world being patched!
Hello world being patched!
Hello world!
Hello world!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!