惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
Y
Y Combinator Blog
博客园 - Franky
D
Docker
B
Blog RSS Feed
M
MIT News - Artificial intelligence
雷峰网
雷峰网
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
S
SegmentFault 最新的问题
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
B
Blog
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Google DeepMind News
Google DeepMind News

q2019的小站

宝塔面板安装使用Guacamole教程 银河麒麟系统下龙芯浏览器无法使用中文输入法的解决方案 修改Authentik推送邮件的内容与样式 关于存在于Wordpress 主题Argon中的越权修改漏洞 JIEBA分词WASM版本编译全过程 UBUNTU使用国内腾讯镜像源安装GITLAB-CE 基于Qwen微调猫娘大模型 解决Argon主题出现Warning Undefined array key “HTTP_USER_AGENT” 报错 BookStack配置渲染Latex公式 NinjaForms问题解决(出现混乱的页面、Recaptcha 地址替换、Pjax导致表单不显示) roboflow/sports库的安装配置与使用
百度智能云服务器HAS组件卸载
q2019 · 2026-03-03 · via q2019的小站

摘要

本文介绍了在百度智能云服务器上卸载HAS组件的方案。

前言

之前在给我百度智能云的VPS服务器重新安装HostEye[1]的时候,我一不小心脑袋一昏,往服务器上误装了百度云的HAS组件。这篇文章主要介绍如何从服务器上移除这个HAS组件。

HAS组件,全名Hardware Aware Service,是百度智能云提供给云服务器宿主机(或者类似的裸金属服务器)的全套硬件自动化管理的软件,能够提供智能化的硬件状态管理、事件监控与推送、硬件维修等能力。相关文档链接如下

https://cloud.baidu.com/doc/BCC/s/bmgyqvtdx

https://cloud.baidu.com/doc/BEC/s/imfz6c6ro

https://cloud.baidu.com/doc/BCC/s/Olwg5cnbw

为什么我需要卸载它

就如我刚刚所说,HAS组件是提供给宿主机的用于硬件管理的软件,而我购买的是百度云的VPS[2],这是一个云上的虚拟机,而HAS组件在虚拟机中是完全没有任何实际作用的。

而且HAS组件安装后也是要一直在后台运行的,这个组件占用对于宿主机来说九牛一毛,但是对于低配置的VPS服务器来说还是不容忽视的。如图1所示,这是我截取我服务器各程序硬盘IO占用率的截图,红色方框圈出的是则是has组件占用的硬盘资源详情数据。

 服务器硬盘IO占用率各程序的截图

图1 服务器各程序的硬盘IO占用率的截图

当然,这里要声明一点。百度智能云VPS服务器默认镜像是没有HAS组件的,我是一不小心误安装的该组件。如果您是非VPS服务器用户,不推荐卸载HAS组件。

检查我的服务器是否安装了HAS组件

我们可以通过检查/home/opt 这个目录下面,看下是否有has、has-agent这两个文件夹,如果有,代表您服务器上安装了has组件,如图2所示。

/home/opt目录下的文件夹截图

图2 /home/opt目录下的文件夹截图

当然我们也可以通过查看进程,来判断系统中是否存在HAS组件,查找命令如下。

ps aux |grep has

如果有下列的进程运行的话,说明您系统上存在HAS组件,命令运行截图如图3所示。

root        3935  0.0  0.0   6304   328 ?        Ss   Feb27   0:00 /opt/avalokita/bin/avalokita --update-url=http://has-master-a.sdns.baidu.com/download/qa_packages/bbc//has-agent-installer.sh --signature-url=http://has-master-a.sdns.baidu.com/download/qa_packages/bbc//has-agent-installer.sh.sig --certificate=/home/opt/has-agent/cert.pem --update-interval=3600 --max-executable-size=1000000000 /home/opt/has-agent/has-agent-installer.sh
root       68133  0.0  0.1  10540  2996 ?        S    Feb27   0:00 bash /home/opt/has-agent/test.sh
root       71543  0.1  0.4 393256  8176 ?        Ssl  Feb27   4:00 /home/opt/has/has_client/has_agent
root       71888  0.0  0.1 1608004 2248 ?        Sl   Feb27   0:02 /home/opt/has/hdoctor/check/logcheck --gpu=20
root       71964  0.0  0.0   1444    64 ?        Ss   Feb27   0:00 /home/opt/has/hdoctor/monitor/plugins/mcelog/checkmce --config-file /home/opt/has/hdoctor/monitor/plugins/mcelog/conf/mcelog.conf --daemon

ps aux |grep has命令在存在HAS的时候的运行结果截图

图3 ps aux |grep has命令在存在HAS的时候的运行结果截图

如何卸载

备注:截止到本文写完(2026年3月3日),最新的HAS版本为1.1.3.144,本文示范的版本也是1.1.3.144。

操作需要重启,且有可能造成服务中断,请务必在修改前对服务器进行备份(比如使用快照功能)。

本文中的操作系统是Ubuntu 24.04。

我自己找到的卸载方案

我自己经过多次实验,总结了下述的卸载方案。首先,前往/home/opt/has-agent/output这个文件夹,在这个文件夹中,有文件叫做standalone.sh。我们在这个文件夹路径下执行下述命令(注意,后续操作都需要root权限)

sh standalone.sh stop

这个命令用于停止HAS服务,执行成功会在终端输出success(我运行的时候,会输出两个success),如图4所示。

sh standalone.sh stop执行后的终端输出截图

图4 sh standalone.sh stop执行后的终端输出截图

执行完成后,再执行下列命令。

sh standalone.sh delservice

此命令用于删除HAS的服务,此命令执行后没有任何输出。执行完后接下来继续执行下面的命令

sh standalone.sh uninstall

这个命令就是用于卸载HAS组件包,此过程可能需要一些时间才能完成,如果运行正常,终端应该输出如图5中所示,有很多个success。

sh standalone.sh uninstall执行成功后的终端输出结果

图5 sh standalone.sh uninstall执行成功后的终端输出结果

当然,如果终端输出failed,如图6所示,代表卸载失败了。您可以尝试重试(经过我多次测试,第一次失败,再执行一次基本上都能成功,我猜测可能是临时有进程占用了文件)。

sh standalone.sh uninstall执行失败后的终端输出结果

图6 sh standalone.sh uninstall执行失败后的终端输出结果

执行完上述命令后,系统中还是有一些残留的东西,crontab中的HAS组件用于保活的计划任务并没有在上述流程中被删除掉。我们输入下述命令

crontab -l | grep has_control

会输出下面的内容(输出截图如图7),这个条目就是HAS残留的计划任务


*/10 * * * * /home/opt/has/has_control keepalive > /dev/null 2>&1、

图7 crontab -l | grep has_control的输出结果

我们执行下述命令移除这个计划任务

sudo crontab -l | grep -vF '/home/opt/has/has_control keepalive' | sudo crontab -

执行完成后重启服务器。重启后重新前往/home/opt这个目录,可以看到这个目录下只有has-agent这个文件夹了,如图8所示。我们直接删除掉这个文件夹就可以了。

卸载HAS完成后/home/opt目录文件截图

图8 卸载HAS完成后/home/opt目录文件截图

然后我们再次执行ps aux |grep has,可以看到结果如图9所示,没有HAS相关的进程了。(备注:程序会输出一个进程,但这个进程是当前的查找程序的进程,并不是残留的HAS进程)

卸载HAS完成后ps aux |grep has的输出结果

图9 卸载HAS完成后ps aux |grep has的输出结果

咨询百度智能云,他们提供的卸载方案

我也问了百度智能云,咨询了是否有相关的删除方案,他们也提供了一种方案。(我感觉这种方案比较暴力,也能卸载掉HAS,但是会有一些残留),下面是他们提供的方案(反馈截图如图10所示)。

先对机器做个镜像备份,然后执行 rm -rf /home/opt/has-agent/  /home/opt/has 删除整个目录,然后ps aux |grep has ,使用kill -9 把这些进程(进程号在图10中有所展示)一个一个删除掉。

百度云工程师回复卸载方案的截图

图10 百度云工程师回复卸载方案的截图