使用 Golang 在 Windows 上启动分离进程

2024-02-28

我有一个 Golang 代码,它必须运行一个独立的子进程。

我的实现的 Linux 版本使用syscall.ForkExec像这样。

syscall.ForkExec(my_program, []string{}, nil)

但我找不到 Windows 实现。我找到了一个使用的提议START /B.

cmd := exec.Command("START", "/B", my_program)
cmd.Start()

很遗憾,START找不到,并且我没有使用 Golang 的其他解决方案。


start不是一个独立的应用程序,它是 Windows 命令行解释器的(内部)命令(cmd.exe) (细节:命令行参考/启动 https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb491005(v=technet.10)),所以你需要一个“shell”来运行start命令。

Use cmd.exe/C参数,并传递start以及要运行的应用程序。

就像这个例子一样:

s := []string{"cmd.exe", "/C", "start", `c:\path\to\your\app\myapp.exe`}

cmd := exec.Command(s[0], s[1:]...)
if err := cmd.Run(); err != nil {
    log.Println("Error:", err)
}

或者不使用命令 slice:

cmd := exec.Command("cmd.exe", "/C", "start", `c:\path\to\your\app\myapp.exe`)
if err := cmd.Run(); err != nil {
    log.Println("Error:", err)
}

您还可以通过/b参数到start如果您不希望启动的应用程序有终端窗口,请像这样:

cmd := exec.Command("cmd.exe", "/C", "start", "/b", `c:\path\to\your\app\myapp.exe`)
if err := cmd.Run(); err != nil {
    log.Println("Error:", err)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Golang 在 Windows 上启动分离进程 的相关文章

  • 如何解析 Content-Disposition 标头以检索文件名属性?

    使用 go 如何解析从 http HEAD 请求检索到的 Content Disposition 标头以获取文件的文件名 此外 如何从 http HEAD 响应中检索标头本身 这样的事情正确吗 resp err http Head http
  • 怎样才能使 Windows 成为一个开箱即用的 POSIX 兼容操作系统?

    这个问题的动机是我的一个牵强的梦想 即 nix 平台上可用的许多优秀软件可以轻松移植到 Windows 微软最近对开源和开放性采取了不同的方法 所以我真的很想知道如果微软有这样的倾向 这样的事情会有多可行 我很好奇的一些更具体的事情是 是否
  • 无法从 Windows 7 上的 Windows 服务启动桌面应用程序

    HI 我在 Windows 7 上有 C WCF Windows 服务 以具有管理员权限的用户身份登录 我正在尝试在服务启动后启动桌面应用程序 我发现的所有讨论都是关于 Windows 工作站和桌面 我创建了一个单独的线程 设置线程工作站和
  • 如何通过批处理文件检查服务是否正在运行并启动它,如果它没有运行?

    我想编写一个执行以下操作的批处理文件 Check if a service is running 如果正在运行 请退出批处理 如果没有运行 启动该服务 到目前为止 我在谷歌上搜索的代码示例被证明不起作用 所以我决定不发布它们 启动服务是通过
  • 仅将 Firesharp 用于 Windows 桌面推送通知

    我想在 Windows 桌面应用程序中使用 Firesharp 该应用程序只会接收来自 Firebase 的通知 并且不会有任何类型的数据库交互 Firebase Cloud Messaging FCM 是 Firebase 唯一使用的东西
  • 如何在 PowerShell 中比较本地文件与 FTP 服务器上的文件的年龄并下载远程复制是否较新

    我正在编写一个 PowerShell 脚本 以帮助我为工作设置新电脑 希望这不仅仅是我一个人会使用 所以我正在尝试考虑所有事情 我在 FTP 服务器上保存了离线安装程序 java flash reader 等 如果本地副本尚未保存在创建的
  • Windows 上的 Node.js 和 Express

    今晚 我决定尝试在我的 Windows 7 计算机上使用 Express 构建一个简单的 Node js 应用程序 安装过程还算顺利 但 Express 拒绝配合 以下是我已采取的步骤 使用以下位置提供的 MSI 安装 Node jshtt
  • 如何在特定文件夹中运行 shell 命令

    我可以用这个out err exec Command git log Output 获取将在与可执行位置相同的路径中运行的命令的输出 如何指定要在哪个文件夹中运行命令 exec Command https golang org pkg os
  • 64 位大型 malloc

    malloc 失败的原因是什么 尤其是在 64 位中 我的具体问题是尝试在 64 位系统上分配一大块 10GB RAM 该机器有 12GB RAM 和 32GB 交换空间 是的 malloc 是极端的 但是为什么它会成为一个问题呢 这是在带
  • OSError: [WinError 193] %1 不是有效的 Win32 应用程序,同时使用 CTypes 在 python 中读取自定义 DLL

    我正在尝试编写用 python 封装 C 库的代码 我计划使用 CTypes 来完成此操作 并使用 Visual Studio 来编译我的 DLL 我从一个简单的函数开始 在 Visual Studio 内的标头中添加了以下内容 然后将其构
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • Windows 和 python 3.2 的 Pylint 安装问题

    当我尝试使用 pip 在 Windows 上安装 pylint 时 我遇到了这个问题 我真的不知道它来自哪里 C Python33 Scripts gt pip exe install pylint Downloading unpackin
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 打印到 stdout 会导致阻塞的 goroutine 运行吗?

    作为一个愚蠢的基本线程练习 我一直在尝试实现理发师睡觉的问题 http en wikipedia org wiki Sleeping barber problem在戈兰 对于通道来说 这应该很容易 但我遇到了一个 heisenbug 也就是
  • 使用 BitmapEncoder 生成时如何使 GIF 循环重复

    我能够使用 BitmapEncoder C WinRT 创建动画 gif 但是 我一直无法弄清楚如何让GIF循环回来并从头开始 没有尝试太多 因为我不确定要尝试什么 搜索了更多要在 GIF 上设置的属性 但找不到任何相关内容 好吧 终于能弄
  • Windows 睡眠功能极慢

    我正在通过 Windows h 使用 Sleep 命令制作一个程序 并且在 Windows 10 而不是 Windows 7 上运行我的程序时遇到了令人沮丧的差异 我将我的程序简化为下面的程序 它与我的更复杂的程序表现出相同的行为 在 Wi
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • 使用 Windows 批处理文件在文本文件中添加新行

    我有一个文本文件 其中有 200 多行 我只想在第 4 行之前添加一个新行 我使用的是 Windows XP 输入前的示例文本文件 header 1 header 2 header 3 details 1 details 2 输出后 hea
  • 哪个版本的 Miniconda 具有适用于 Windows 64 位的 Python 3.6?

    我正在开发一个需要这些深度学习库的项目 keras 和 tensorflow 不幸的是 这些不适用于 Python 3 7 有人可以告诉我一个带有 Python 3 6 的 Miniconda 版本 适用于 Windows 64 位 吗 我

随机推荐

  • 如何将 virtualenv 与本地 dist 包隔离?

    如何使用 usr local lib python2 7 dist packages 停止 virtualenv 目前当我跑步时 virtualenv no site packages ENV 它仍然使用我希望停止的 dist packag
  • 如何启用跨表格单元格和行的 div 拖动和调整大小

    UPDATE 我认为 Jquery 是解决我的问题的唯一方法 所以让演示工作将会有很大的帮助 谢谢 我正在尝试创建一个调度程序类型的应用程序 我需要能够垂直调整彩色 div 的大小 并将它们拖动到表中的任何行 单元格 例子 将调整大小橙色
  • Friendship_Id 和保留字 -- 如何替换保留字?

    以下是导致错误的原因的示例 ruby 1 9 2 p290 004 gt Post new title new save 0 3ms BEGIN post Load 0 3ms SELECT posts FROM posts WHERE s
  • 标记/样式最佳实践:如何在 CSS 类上有效地分发样式规则?

    假设我有一些 HTML 页面和相应的 CSS 文件 我想为某些元素添加圆角 我想在其他所有部分上替换背景颜色 我想为每个部分标题添加悬停状态 如此等等 我一直在造型 造型 造型 我发现存在三个极端 涉及按类 按 id 和按层次结构在标记上分
  • 使用对象初始值设定项时如何正确使用断点?

    例如 做这样的事情 foreach DataRow row in data Rows Person newPerson new Person Id row Field
  • Opencv复制3通道IplImage到4通道IplImage

    当我尝试使用 cvCopy 将由 3 个通道组成的 IplImage 复制到具有 4 个通道的 IplImage 稍后我需要额外的通道 时 我得到的只是一条错误消息 是否有另一种方法可以增加 IplImage 的通道数而不丢失它已经保存的数
  • git rebase 已经合并分支了吗?

    我从主分支创建了一个功能分支 之后 有来自功能分支的提交 F1 F1 Feature Branch M1 M2 Master Branch 之后 feature分支被合并到master分支中 并且master分支中还有两个提交 M3 和 M
  • 相同的错误代码

    我在Linux上使用python 2 4 1 以及我工作的公司内部编写的python包 用于在两台主机之间建立连接以进行测试 建立连接后 定义为客户端的一侧在调用时失败socket connect使用正确的参数 我检查过 错误代码为111
  • 服务器返回 HTTP 响应代码:URL 为 503

    Getting 线程 main 中出现异常 java io IOException 服务器返回 HTTP 响应代码 URL 为 503 当我多次调用亚马逊产品广告 API 时出现错误 原因是服务超载吗 一种可能的解决方案是使用 Thread
  • Googlebot 会抓取用 JavaScript 对 DOM 所做的更改吗?

    对于 SEO 我的任务是添加一个rel nofollow 所有外部链接 最简单 最不显眼的添加方式rel nofollow 每个外部链接都带有一些 jQuery 我已经做得很好 但我现在想知道 Google 是否会看到 jQuery 文档加
  • iReport:如何根据法语区域设置格式化日期

    我在格式化日期时遇到问题iReport 我的电脑将区域设置语言配置为French但当iReport生成报告我发现日期格式为English locale 这是我的一些代码jrxml file
  • 有没有办法检查子进程是否仍在运行?

    我正在启动许多子流程subprocess Popen在Python中 我想检查一个这样的过程是否已经完成 我找到了两种检查子流程状态的方法 但这两种方法似乎都强制该流程完成 一种正在使用process communicate 并打印返回码
  • Android:我应该在哪里保存临时文件?

    我的应用程序允许用户创建和修改文件 我希望他们能够以电子邮件附件的形式发送文件 因此 我需要首先创建并写入一个临时文件 然后将其附加到电子邮件中 不幸的是 根据对以下问题的唯一答复 似乎没有好的方法可以知道电子邮件应用程序是使用临时文件完成
  • 如果没有找到行,Django Coalesce 返回 null

    我正在使用Coalesce功能 https docs djangoproject com en dev ref models database functions coalesce以防止聚集Sum从返回None Coalesce Sum e
  • #pragma Once 是安全包含防护吗?

    我读到使用时有一些编译器优化 pragma once这可以加快编译速度 我认识到这是非标准的 因此可能会造成跨平台兼容性问题 非 Windows 平台 gcc 上的大多数现代编译器都支持此功能吗 我想避免平台编译问题 但也想避免后备防护的额
  • 角度错误日志发送到elasticsearch

    我有一个角度项目版本 10 0 2 我想将开发人员控制台上的所有错误记录到弹性搜索中 当我在全局错误处理程序中捕获错误时 我的处理程序内部如下所示 export class GlobalErrorHandlerService extends
  • 收集要安装的项目时发生错误(访问被拒绝)

    当我尝试从 Eclipse 安装升级时 我收到下面给出的错误 它进行了一半 然后抛出错误 An error occurred while collecting items to be installed session context wa
  • 如何加密或混淆 Objective C 代码? [复制]

    这个问题在这里已经有答案了 可能的重复 iPhone iPad 应用程序代码混淆 有可能吗 值得 https stackoverflow com questions 5556849 iphone ipad app code obfuscat
  • 如何在 Django 模板中添加注释?

    我想用一句话来评论这一点 if something property table tr this is a comment if something property table tr 正如迈尔斯的回答 comment endcomment
  • 使用 Golang 在 Windows 上启动分离进程

    我有一个 Golang 代码 它必须运行一个独立的子进程 我的实现的 Linux 版本使用syscall ForkExec像这样 syscall ForkExec my program string nil 但我找不到 Windows 实现