Задать вопрос
  • Почему закрывается "дочерний" процесс консольного приложения?

    @your_mirror Автор вопроса
    Решил таким образом. Game.exe и Update.exe закроются, но останется открыта консоль из Update.exe и будет независимым процессом.

    Melz, В Windows я делал обновление похожим образом, но там при закрытии Game.exe, Update.exe не являлся для него дочерним и существовал далее.

    Код Game.exe:
    static public void Run(Version version)
    		{
    			ProcessStartInfo psi = new ProcessStartInfo() {
    				WorkingDirectory = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory),
    				FileName = "/usr/bin/mono",
    				Arguments = String.Format("Update.exe -exe \"{0}\" -ud \"{1}\" -v \"{2}\"", Process.GetCurrentProcess().ProcessName, Config.ServerUrl, version)
    			};
    			Process.Start(psi).WaitForExit();
    
    			MainForm.Instance.Close();
    		}


    Код Update.exe:
    public static int Main(string[] args)
    		{
    			ParseArguments(args);
    			String tmpFile = Path.GetTempFileName();
    			File.Copy("update.sh", tmpFile, true);
    			Process.Start("xterm", String.Format("-e sudo bash {0} {1} {2} {3}", tmpFile, AppName, UpdateDomain, VersionToInstall));
    
    			return 1;
    		}
    Ответ написан
    2 комментария