首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在后台运行linux命令时,总是失败

在后台运行linux命令时,总是失败
EN

Stack Overflow用户
提问于 2020-09-18 15:11:55
回答 1查看 184关注 0票数 0

我正在尝试从点网络核心运行android模拟器。我用来做这段代码:

代码语言:javascript
运行
复制
    var psi = new ProcessStartInfo
    {
        FileName = "/Users/hexdump/Library/Android/sdk/platform-tools/adb",
        Arguments = "-avd emulator-5444 &",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        RedirectStandardError = true,
    };

    var proc = new Process
    {
        StartInfo = psi
    };

    
        
    success = proc.Start();
    proc.WaitForExit();

这是非常标准的代码。这对于我运行的所有命令都有效,但是这个需要运行的命令"dettached“不起作用。显然,如果从控制台执行,它就可以正常运行。

作为一个副手,我删除了"WaitForExit“的调用,不知怎么的,我已经能够做我想做的事情了。但是,当我关闭dotnet时,我开始的过程也被终止了(显然)。这不是我想要的。

点网核心是否能够在后台运行脚本/可执行文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-18 15:23:28

&是一个shell结构。它说你想要在后台运行应用程序。

但是,您没有运行shell (如bash)。您正在直接运行一个程序:/Users/hexdump/Library/Android/sdk/platform-tools/adb

要解决这个问题,请从参数列表中删除参数&。这使得.NET核心直接运行可执行文件。您还需要删除proc.WaitForExit()调用,因为您的程序不希望等待模拟器退出。

名为UseShellExecute的错误名称与在Linux/macOS/Unix中运行无关,它是Windows。它的行为更像是调用open (macOS)或xdg-open (Linux)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63958384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档