SysUtil.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package Utils
  2. import (
  3. "fmt"
  4. "os"
  5. "runtime"
  6. "time"
  7. )
  8. // 显示当前系统基本信息
  9. func ShowSysInf() {
  10. fmt.Println("★★★★★★★★★★★★★★★★★★★★★★★★")
  11. fmt.Println("runtime.Version --->", runtime.Version()) //GO的版本
  12. fmt.Println("runtime.NumCPU --->", runtime.NumCPU()) //CPU核数
  13. fmt.Println("runtime.GOOS --->", runtime.GOOS) //运行GO的OS操作系统
  14. fmt.Println("runtime.GOARCH --->", runtime.GOARCH) //CPU架构
  15. fmt.Println("runtime.Version --->", runtime.Version()) //当前GO语言版本
  16. fmt.Println("time --->", time.Now()) //系统当前时间
  17. fmt.Println("★★★★★★★★★★★★★★★★★★★★★★★★")
  18. //var memStats runtime.MemStats
  19. //runtime.ReadMemStats(&memStats)
  20. //fmt.Println("runtime.memStats --->", memStats)
  21. //获取全部的环境变量
  22. // data := os.Environ()
  23. // for _, val := range data {
  24. // fmt.Println(val)
  25. // }
  26. }
  27. // go不支持三元表达式,可以使用自定义的函数实现
  28. // 例如:max := utils.If(x > y, x, y).(int)
  29. func If(condition bool, trueVal, falseVal interface{}) interface{} {
  30. if condition {
  31. return trueVal
  32. }
  33. return falseVal
  34. }
  35. /*
  36. 交换int数据:a, b := utils.Swap(2, 9)
  37. 交换字符串数据:A, B := utils.Swap("Li", "Chen")
  38. */
  39. func Swap(x, y interface{}) (interface{}, interface{}) {
  40. return y, x
  41. }
  42. // 设置环境变量
  43. func SetEnv(key, value string) error {
  44. return os.Setenv(key, value)
  45. }
  46. // 取环境变量的值
  47. func GetEnv(key string) string {
  48. return os.Getenv(key)
  49. }
  50. //取进程ID
  51. func GetPid() int {
  52. return os.Getpid()
  53. }
  54. func KillByPid(pid int) {
  55. p, _ := os.FindProcess(pid)
  56. fmt.Println("KillByPid", p)
  57. p.Kill()
  58. }
  59. func StartProcessDemo() {
  60. //例子演示
  61. attr := &os.ProcAttr{
  62. Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
  63. }
  64. p, _ := os.StartProcess("xxx.exe", []string{"xxx", "1.txt"}, attr)
  65. p.Release()
  66. time.Sleep(10000)
  67. p.Signal(os.Kill)
  68. os.Exit(10)
  69. }
粤ICP备19079148号