我已经使用 Linux 中的 .Net Core 控制台应用程序调用 virshProccess.start
了很多个月,但突然出现权限错误:
Permission denied
at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setUser, UInt32 userId, UInt32 groupId, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean shouldThrow)
at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at wconfig.Menus.MAIN.Test(Object& Obj)
- 我以 root 身份运行我的 .Net Core 应用程序
- 我可以从 shell 很好地运行 virsh 命令
Process.Start
如果我使用,我可以很好地运行 virsh 命令bash -c MyVirshCmd...
- 我可以在我的 .Net Core 应用程序中运行其他命令很好,我只看到了 virsh 的问题
ForkAndExecProcess
本机 .net 核心功能和 virsh中发生了一些奇怪的事情。
.Net Core 代码示例:
Dim PI As New ProcessStartInfo
PI.RedirectStandardOutput = False
PI.FileName = "virsh"
PI.Arguments = "list --all"
Using proc As New Process
proc.StartInfo = PI
proc.Start()
End Using
在/etc/libvirt/qemu.conf配置文件中它说The user for QEMU processes run by the system instance.
?我尝试将文件设置user
为group
“root”,但没有帮助。
无奈之下,我试图重新启动服务器,当然没有帮助。
我想不出服务器上发生了什么变化,它昨天突然停止工作。
使用 Debian Buster (10)
我迷路了?