Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >你能在Go中运行一个独立的程序实例吗?

你能在Go中运行一个独立的程序实例吗?
EN

Stack Overflow用户
提问于 2020-02-21 18:03:08
回答 1查看 87关注 0票数 1

我正在寻找一种方法,可以从Go程序中启动一个完全独立的程序实例。到目前为止,这是我最好的尝试:

代码语言:javascript
代码运行次数:0
复制
  // Some code   

    go exec.Command("konsole", "--hold", "--separate", "sh", "-e", "go", "run", "test.go")
.Run()

    // Continue doing something else then quit

使用linux KDE的Konsole。这个命令“几乎”有效-它启动一个新的Konsole实例并运行程序。但它们是相关的:如果第一个程序结束(ctrl+c),第二个程序也会结束。有没有办法解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-21 00:40:29

为了实现它,您需要用os.StartProcess替换exec.Command调用,并给出额外的进程属性os.ProcAttrsyscall.SysProcAttr。设置标志Setpgid并使Pgid的默认值为0可以达到@that_other_guy提到的目标。

代码语言:javascript
代码运行次数:0
复制
package main

import (
        "fmt"
        "os"
        "os/exec"
        "syscall"
)

func main() {
        cmd, err := exec.LookPath("sleep")
        if err != nil {
                panic(err)
        }
        attr := &os.ProcAttr{
                Sys: &syscall.SysProcAttr{
                        Setpgid: true,
                },
        }
        process, err := os.StartProcess(cmd, []string{cmd, "1m"}, attr)
        if err != nil {
                panic(err)
        }
        fmt.Println(process.Pid)
        process.Release()
        for {
        }
        return
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60344073

复制
相关文章
谁说程序不能在指定地址运行?
我们知道程序在每次运行的时候地址都是不一样的,linux之所以有这样的设计也许是为了安全性考虑,不利于黑客的攻击。
刘盼
2020/06/30
7410
编译运行GO程序
GO程序的代码是可以直接编译成exe文件的 在test.go目录下运行 go build test.go即可把go程序编译成exe文件
似水的流年
2019/12/06
1.2K0
QT-QTSingleApplication-程序只运行一个实例
QTSingleApplication由Qt官方提供的,用于实现只启动一个实例,并在启动时可以向向另一个实例通信(依赖于QtNetwork模块)
诺谦
2019/05/24
4K0
运行你的第一个python程序
(如果提示找不到文件, 可能是因为没有配置好python环境变量, 还可以通过开始菜单里找到python自带的ide环境)
不止于python
2022/05/31
4340
运行你的第一个python程序
实战分析一个运行起来会卡死的Go程序
最近一位非常热心的网友建议结合demo来分析一下goroutine的调度器,而且还提供了一个demo代码,于是便有了本文,在此对这位网友表示衷心的感谢!
阿波张
2019/06/24
4.4K1
保证应用程序只有一个实例在运行
Process current = Process.GetCurrentProcess();
Java架构师必看
2021/03/22
8450
程序已在运行,只能运行一个实例_最常用解决冲突的办法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
7280
Spring @PostMapping 能在 URL 中带有参数吗
Spring 的 @PostMapping 在使用 POST 提交的时候,能不能在 URL 中带参数?
HoneyMoose
2022/09/11
5720
Spring @PostMapping 能在 URL 中带有参数吗
你真的知道 GO 中 nil 代表什么吗?
本篇文章主要是来聊聊 Golang 中关于 nil 的使用方式及理解,看看有没有你还不知道的情况呢?
阿兵云原生
2023/09/29
5320
你真的知道 GO 中 nil 代表什么吗?
你会写ESLint rule吗?你了解ESLint的运行原理吗?
这篇文章目的是介绍如何创建一个ESLint插件和创建一个ESLint rule,用以帮助我们更深入的理解ESLint的运行原理,并且在有必要时可以根据需求创建出一个完美满足自己需求的Lint规则。
OBKoro1
2019/12/09
1.2K1
spark1.6学习(二)——独立的python程序运行pyspark
一般,我们在测试的时候可以使用pyspark进行简单的交互,但是在线上具体使用的程序,我们需要使用一个完整的pyspark程序的。
Java架构师必看
2021/05/14
6860
「  (随写)运行你的第一个Java程序!  」
这一篇主要是针对安装了Java环境(以及变量)的电脑(不要问我为什么没有介绍怎么安装环境,因为电脑坏了)
青益
2023/01/03
3280
如何在一个python程序中运行另外一个程序
将另外一个python程序封装成一个我们想要运行的模块,在模块里面,将所有代码放到一个函数里面,在另外一个程序中导入运行就可以了。
叶子陪你玩
2020/03/12
5.6K0
使Qt程序只能运行一个实例的3种方法
Unix: QSharedMemory "owns" the shared memory segment. When the last thread or process that has an instance of QSharedMemory attached to a particular shared memory segment detaches from the segment by destroying its instance of QSharedMemory, the Unix kernel release the shared memory segment. But if that last thread or process crashes without running the QSharedMemory destructor, the shared memory segment survives the crash.
用户5807183
2019/09/03
3.9K0
你了解吗?小程序要怎么在硬件设备上运行
本文就针对这个问题给大家介绍一下由凡泰极客研发的FinClip 小程序容器,该技术可以帮助企业打破平台的限制,让任何企业的手机APP、桌面应用软件均可以嵌入组件获得小程序运行和上架能力。
用户10236691
2022/12/22
1.2K0
你了解吗?小程序要怎么在硬件设备上运行
IDEA 下单程序多端口不同配置独立运行
idea 的小朋友们,分布式集群程序开发时,怎么办呢?我们希望在开发环境下,单个程序能够运行在不同端口上,使用不同的配置,以此达到分布式部署的运行测试,怎么办呢?
酒馆丁老师
2020/09/08
1.5K0
IDEA 下单程序多端口不同配置独立运行
创建你的第一个go程序(hello world!)
我的理解:go是擅长高并发编程 开源的,具备高效的性能,比较容易理解的简洁的写法的语言,它是一种静态类型、编译型的语言 什么是编译型语言? 它是一种静态类型、编译型的语言是指一种编程语言具有以下特点:
贵哥的编程之路
2023/10/16
1990
创建你的第一个go程序(hello world!)
vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。     WinExec 两个参数,前一个指定路径,后一个指定显示方式。     ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直
用户1198337
2018/01/19
4K0
如何在一个python程序中运行另外一个程序(二)
为了更有互动性和选择性,这时你突然有一个想法,制作一个新的启动程序,程序开始会问我想问我玩那个游戏,提供 1 和 2两种选择,当我输入1时,就会启动游戏 1,选择2的时候就会启动游戏2。
叶子陪你玩
2020/03/12
3.2K0
WPF只运行一个实例
正文 [DllImportAttribute("User32.dll")] private static extern int FindWindow(string ClassName, string WindowName); [DllImport("user32.dll")] public static extern bool SetForegroundWindow(int hWnd); private void checkProcess() { Console.WriteLine("程序启动");
码客说
2022/03/13
6710

相似问题

你能在Linux中运行Xcode吗?

12301

你能在Pycharm中运行Scrapy吗?

117

你能在HTML网页上运行python程序吗?

21

你能在.NET中从JSON实例化一个对象实例吗?

50

你能在backbase 5.5.1 (最新版本)中运行独立的angularJS web应用程序吗?

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档