键入“ exit”会关闭foo.exe和powershell

问题描述 投票:0回答:1

我将程序的路径(例如“ foo.exe”)设置为我的系统路径,因此在cmd / powershell中键入foo将启动程序。但是,当我键入exit退出cmd / powershell时,foo.exe也随之关闭。为什么会发生这种情况,如何防止这种情况发生?

并非所有程序都发生这种情况,只有某些程序才会发生,这意味着这些程序可能应该以不同的方式添加到路径中,或者应该以我猜测的不同方式启动。但是,长时间在Internet上搜索并没有给我任何帮助,因此不胜感激。

powershell command-prompt
1个回答
0
投票
  • 如果foo.execonsole应用程序(为Windows控制台子系统编译的一个应用程序),它将在cmd.exe / PowerShell中运行synchronously:也就是说,将不会返回控件到调用外壳程序,直到应用程序退出。这意味着,直到exit退出,您甚至都不会获得机会类型foo.exe

    • 但是,有可能[[is]]运行控制台应用程序异步,即如果您使用job通过Start-JobStart-Job运行它;也就是说,Start-ThreadJob将在background中运行。

      • 在那种情况下,以Start-ThreadJob退出调用外壳程序

        终止foo.exe进程。

    • 为避免这种情况,您可以改用exit cmdlet;在Windows上,您可以使用它直接启动foo.exe。在类似Unix的平台上,必须通过Start-Process实用程序启动它。

  • 相反,如果Start-Process

    GUI

  • 子系统应用程序,它将启动调用shell的asynchronouslyindependently:也就是说,控制权返回到调用shell成功完成新过程的[[creation之后,退出外壳程序对该新过程没有影响。
    © www.soinside.com 2019 - 2024. All rights reserved.