.Net Core Process.Start on Linux


I am facing the following issue when running my .Net Core application on Linux.

Here is the exception:

System.ComponentModel.Win32Exception (0x80004005): Permission denied
   at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Ombi.Schedule.Jobs.Ombi.OmbiAutomaticUpdater.<Update>d__18.MoveNext() in C:\projects\requestplex\src\Ombi.Schedule\Jobs\Ombi\OmbiAutomaticUpdater.cs:line 218

Here is the code:

var updaterFile = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location),
     "TempUpdate", $"Ombi.Updater");

var start = new ProcessStartInfo
    UseShellExecute = false,
    CreateNoWindow = true,
    FileName = updaterFile,
    Arguments = GetArgs(settings), // This just gets some command line arguments for the app i am attempting to launch
    WorkingDirectory = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "TempUpdate"),

using (var proc = new Process { StartInfo = start })

It seems that the exception is being thrown when we call .Start().

I am not sure why this is happening, the permissions on the file and folders have been set to 777.

asked on Stack Overflow Dec 13, 2017 by Jamie Rees • edited Dec 13, 2017 by Filnor

1 Answer


Your .NET code looks fine. I would start from testing your code with some known built-in tool like "/bin/ping google.com" to confirm that the issue relates to ACLs. Also check that all parent directories higher in the tree for Ombi.Updater have execute permissions.

You may look for more information in Unix & Linux and Ask Ubuntu StackExchange sites.

answered on Stack Overflow Jul 7, 2020 by Vitaliy Shibaev

User contributions licensed under CC BY-SA 3.0