libvirt 自定义模拟器路径

libvirt 自定义模拟器路径

我在配置自定义路径时遇到问题qemu-system-x86_64

$ echo $PATH
/usr/local/TEST:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
$ which qemu-system-x86_64
/usr/local/TEST/qemu-system-x86_64

似乎在控制台中有效。但重新启动 libvirt 后,我​​在 syslog 中看到以下错误:

libvirt version: 2.5.0, package: 3ubuntu5.5~cloud0 (Openstack Ubuntu Testing Bot <[email protected]> Fri, 18 Aug 2017 13:59:48 +0000)    
Cannot check QEMU binary /usr/bin/qemu-system-x86_64: No such file or directory

这导致 libvirt 提供空的功能。有什么技巧可以让 $PATH 工作吗?我在源代码中没有看到任何硬编码路径。

谢谢。

答案1

好吧,这似乎与 libvirt 无关。
这是 systemd 的工作方式。Systemd
忽略默认环境变量。它还会忽略/etc/environment设置。
您必须明确配置 libvirt-bin 服务文件以包含您需要的变量:

[Service]
Environment="PATH=/usr/local/TEST:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin"

您还可以指定默认环境文件:

[Service]
EnvironmentFile=/etc/environment

您每天学习的东西...

相关内容