进程名字

每个进程都一定有进程名字,例如我们运行top,进程名就是“top”,如果是自定义的程序呢?

其实进程名一般都是进程参数的第一个字符串,在Go中可以这样获得进程名。

  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. func main() {
  7. processName := os.Args[0]
  8. fmt.Println(processName)
  9. }

进程的输出结果如下。

  1. root@87096bf68cb2:/go/src# go run process_name.go
  2. /tmp/go-build650749614/command-line-arguments/_obj/exe/process_name
  3. root@87096bf68cb2:/go/src# go build process_name.go
  4. root@87096bf68cb2:/go/src# ./process_name
  5. ./process_name

是否稍稍有些意外,因为go run会启动进程重新编译、链接和运行程序,因此每次运行的进程名都不相同,而编译出来的程序有明确的名字,所以它的进程的名字都是一样的。

知道这些以后,我们可以开始接触接进程的运行参数。