execing process _ golang

本文介绍如何用Go语言中的exec包来完全替换当前的Go进程为另一个进程,并展示了通过syscall.Exec函数实现这一过程的具体代码示例。

In the previous  example we looked at spawning external processes. We do this when we need an external process accessible to running Go process. Sometimes we just want to completely replace the current Go process with another one. To do this we'll use Go's implementation of classic exec function

package main

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

func main() {

    binary, lookErr := exec.LookPath("ls")
    if lookErr != nil {
        panic(lookErr)
    }

    args := []string{"ls", "-a", "-l", "-h"}

    env := os.Environ()

    execErr := syscall.Exec(binary, args, env)
    if execErr != nil {
        panic(execErr)
    }
}
total 3656
drwxr-xr-x  17 xjk  staff   578B Apr  1 13:19 .
drwxr-xr-x+ 30 xjk  staff   1.0K Mar  6 14:00 ..
-rw-r--r--@  1 xjk  staff   6.0K Mar 27 11:21 .DS_Store
-rw-r--r--   1 xjk  staff   838B Mar 30 13:38 Reading.go
-rw-r--r--   1 xjk  staff   553B Mar 27 13:12 URL.go
-rw-r--r--   1 xjk  staff   598B Mar 30 13:45 Writing.go
-rw-r--r--   1 xjk  staff   402B Mar 30 13:23 base64.go
-rw-r--r--   1 xjk  staff   447B Mar 31 13:28 commandLineFlags.go
-rwxr-xr-x   1 xjk  staff   1.7M Mar 31 13:21 commonLineArgument
-rw-r--r--   1 xjk  staff   209B Mar 31 13:20 commonLineArgument.go
-rw-r--r--   1 xjk  staff   261B Apr  1 13:02 environmentVariables.go
-rw-r--r--   1 xjk  staff   303B Apr  1 13:22 execingProcess.go
-rw-r--r--   1 xjk  staff   298B Mar 31 13:15 lineFilters.go
-rw-r--r--   1 xjk  staff   384B Mar 27 13:04 number_parsing.go
-rw-r--r--   1 xjk  staff   189B Mar 27 13:18 sha.go
-rw-r--r--   1 xjk  staff   720B Apr  1 13:15 spawningProcess.go
-rwxr-xr-x   1 xjk  staff   243B Mar 27 11:25 urllib001.py

总结  :

  1 : ....

转载于:https://www.cnblogs.com/jackkiexu/p/4383594.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值