/var/log/messages/var/log/syslog

获取当前进程PID

Golang 版本

1.12.1

前言

/var/log/messages/var/log/syslog

实现

package main

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

func main() {

    pid := os.Getpid()
    fmt.Printf("进程 PID: %d \n", pid)

    prc := exec.Command("ps", "-p", strconv.Itoa(pid), "-v")
    out, err := prc.Output()
    if err != nil {
        panic(err)
    }

    fmt.Println(string(out))
}
进程 PID: 28259 
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
28259 pts/0    Sl+    0:00      0   648 102535 1224  0.0 ./main

原理

osGetpidps

在应用开始时打印PID可能很有用,在应用崩溃时,获取到的PID就可以调查相应的问题。