golang get process name by pid

一个很好的问题:How golang to get process name by process id (pid)?

目前看来go api并没有提供通过pid获取进程名称的方法,可以通过 /proc/<pid>/cmdline来获取对应的进程名称,也可以通过 readlink /proc/6530/exe 来获取

  • /proc/<pid>/cmdline 获取的为运行进程的名称,通常包含一些特殊字符。例如 "-bash\x00"sshd: root@pts/0
  • readlink /proc/6530/exe 获取的为对应进程运行的程序的路径
pid := os.Getppid()
contents, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline",pid))
pid := os.Getppid()
contents, err := os.Readlink(fmt.Sprintf("/proc/%d/cmdline",pid))

Reference
process name from pid

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,Go语言是一种高效的编程语言,适用于并发编程和网络编程。在网络编程中,httpclient是一个常用的工具,它可以发送HTTP请求并接收响应。 在Go语言获取httpclient有两种方式:一种是使用内置的net/http包,另一种是使用第三方库。 使用内置的net/http包可以轻松地创建httpclient。我们可以通过以下代码创建一个httpclient: ```go func main() { client := &http.Client{} req, err := http.NewRequest("GET", "https://www.example.com", nil) if err != nil { log.Fatal(err) } resp, err := client.Do(req) if err != nil { log.Fatal(err) } defer resp.Body.Close() } ``` 通过上述代码,我们可以看到,我们使用了http.Client{}来创建httpclient,然后使用http.NewRequest()方法创建一个get请求。请求参数包括请求的方法(GET、POST等)、URL、body等。发送请求后,我们可以使用client.Do()方法获取响应,最后记得关闭响应体。 如果需要更多的控制和配置,我们可以使用http.Transport{}来创建定制的httpclient,例如超时时间、代理等。 此外,我们还可以使用第三方库(如Go Resty或Gentleman)来获取httpclient。这些库提供了一些更方便的API和功能,例如自动管理和维护cookie、使用连接池等。使用这些库可以加快我们的开发速度,但需要学习并掌握它们的API和用法。 总而言之,在Go语言获取httpclient非常简单,我们可以使用内置的net/http包或第三方库,在开发过程中灵活应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hermokrates

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值