gpt4 book ai didi

linux - 如何检测脚本是否在虚拟机上运行?

转载 作者:IT王子 更新时间:2023-10-29 00:24:10 25 4
gpt4 key购买 nike

我认为这个问题不需要任何解释。我正在编写一个可以启动虚拟机来模拟网络的软件。如果该软件已在虚拟机上运行,​​我想禁用此功能。

我已经读过这篇文章:How to detect if my application is running in a virtual machine?但我需要在 Linux 上执行此操作,而该帖子仅涵盖 Windows。

我将其标记为 Perl 问题,因为我必须在 Perl 中这样做,但可能在 proc 或其他地方有一些文件需要检查和所有语言都一样。其实我不知道。

我主要对检测 VirtualBox 和 KVM 感兴趣,因为它们是我正在使用的 VM。

那么,有什么建议吗?

最佳答案

我将具体讨论运行 Linux 作为 guest 操作系统的 VMware 和虚拟 Box 虚拟机。如果您运行以下命令,您将知道底层硬件是 VMware/VirtualBox,这证明它是一个虚拟机。

对于 VMware guest :

# dmidecode  | grep -i product
Product Name: VMware Virtual Platform

对于 Virtual Box guest :

# dmidecode  | grep -i product
Product Name: VirtualBox

dmidecode”是一个linux系统命令。您可以让 perl 在脚本的开头运行 dmidecode 并提取值。如果它是虚拟机,那么脚本应该退出而无需进一步执行。

我没有任何其他虚拟机管理程序可以让你得到上面命令返回的内容。

希望这对您有所帮助。

关于linux - 如何检测脚本是否在虚拟机上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12874288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com