libvirtd命令执行报错:无法获取pid文件问题求助
libvirtd启动报错:无法获取pid文件 '/var/run/libvirtd.pid'
执行libvirtd命令时持续报错:
libvirtd 2022-11-14 15:00:53.981+0000: 315583: info : libvirt version: 3.2.0, package: 14.el7_4.7 (Red Hat, Inc. http://bugzilla.redhat.com/bugzilla, 2017-12-19-04:58:04, x86-041.build.eng.bos.redhat.com) 2022-11-14 15:00:53.981+0000: 315583: info : hostname: myhv 2022-11-14 15:00:53.981+0000: 315583: error : virPidFileAcquirePath:422 : Failed to acquire pid file '/var/run/libvirtd.pid': Resource temporarily unavailable
已尝试操作:
- 终止现有libvirtd进程
- 重启libvirtd服务,服务重启成功并获取新PID,但再次执行
libvirtd命令仍报相同错误。
求问该问题的原因及解决方法?
可能原因及解决步骤
1. 直接执行libvirtd命令的方式错误
默认情况下,libvirtd作为守护进程运行时会独占pid文件。直接在命令行执行libvirtd会尝试以前台模式启动,此时后台已有运行中的实例占用pid文件,导致报错。
解决方法:
- 检查服务状态改用:
systemctl status libvirtd - 若需前台调试,先停止后台服务:
systemctl stop libvirtd libvirtd --verbose
2. pid文件权限或属性异常
即使重启服务,pid文件可能存在权限问题或标记异常。
解决方法:
- 停止服务:
systemctl stop libvirtd - 删除现有pid文件:
rm -f /var/run/libvirtd.pid - 重启服务:
systemctl start libvirtd - 验证pid文件权限(应属于
root:root或root:libvirt):ls -l /var/run/libvirtd.pid
3. 文件系统挂载异常
/var/run通常是tmpfs临时文件系统,若挂载异常会导致文件操作失败。
解决方法:
- 检查挂载状态:
mount | grep /var/run - 若异常则重新挂载:
mount -o remount,rw /var/run
内容的提问来源于stack exchange,提问作者Hamid
相关产品推荐
相关产品推荐

