Difference between revisions of "Golnag killing port pid"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "``` package main import ( "fmt" "github.com/drael/GOnetstat" "os" "strconv" // "syscall" // "errors" ) func main() { // listports...")
 
Line 1: Line 1:
```
 
 
package main
 
package main
  
 
import (
 
import (
    "fmt"
+
        "fmt"
    "github.com/drael/GOnetstat"
+
        "github.com/drael/GOnetstat"
 
         "os"
 
         "os"
 
         "strconv"
 
         "strconv"
Line 12: Line 11:
  
 
func main() {
 
func main() {
    // listports()
+
        // listports()
 
         killPort(9999)
 
         killPort(9999)
 
}
 
}
Line 19: Line 18:
 
         err := proc.Kill()
 
         err := proc.Kill()
 
         if err != nil {
 
         if err != nil {
        panic(err.Error())
+
                panic(err.Error())
 
         }
 
         }
 
         proc.Release()
 
         proc.Release()
 
}
 
}
  
 
+
func killPID(pid int) {
func killPID(pid int){
+
        process, err := os.FindProcess(pid)
process, err := os.FindProcess(pid)
 
 
         if err != nil {
 
         if err != nil {
 
                 panic(err.Error())
 
                 panic(err.Error())
Line 33: Line 31:
 
}
 
}
  
func killPort(port int64){
+
func killPort(port int64) {
    d := GOnetstat.Tcp()
+
        d := GOnetstat.Tcp()
    for _, p := range(d) {
+
        for _, p := range d {
            if p.State == "LISTEN" && p.Port == port {
+
                if p.State == "LISTEN" && p.Port == port {
                fmt.Printf("Killing port, pid, name %v %v %v\n", port, p.Pid, p.Name)
+
                        fmt.Printf("Killing port, pid, name %v %v %v\n", port, p.Pid, p.Name)
                pid, err := strconv.Atoi(p.Pid)
+
                        pid, err := strconv.Atoi(p.Pid)
    if err != nil {
+
                        if err != nil {
        panic(err.Error())
+
                                panic(err.Error())
    }
+
                        }
                killPID(pid)
+
                        killPID(pid)
 
                 }
 
                 }
 
         }
 
         }
 
}
 
}
 
  
 
func listPorts() {
 
func listPorts() {
    d := GOnetstat.Tcp()
+
        d := GOnetstat.Tcp()
  
    fmt.Printf("Proto %16s %20s %14s %14s %14s\n", "Local Adress", "Foregin Adress",
+
        fmt.Printf("Proto %16s %20s %14s %14s %14s\n", "Local Adress", "Foregin Adress",
 
                 "State", "Pid", "Program")
 
                 "State", "Pid", "Program")
  
    for _, p := range(d) {
+
        for _, p := range d {
            if p.State == "LISTEN" {
+
                if p.State == "LISTEN" {
                fmt.Printf("foo")
+
                        fmt.Printf("foo")
 
                 }
 
                 }
  
        if p.State == "LISTEN" {
+
                if p.State == "LISTEN" {
            ip_port := fmt.Sprintf("%v:%v", p.Ip, p.Port)
+
                        ip_port := fmt.Sprintf("%v:%v", p.Ip, p.Port)
            fip_port := fmt.Sprintf("%v:%v", p.ForeignIp, p.ForeignPort)
+
                        fip_port := fmt.Sprintf("%v:%v", p.ForeignIp, p.ForeignPort)
            pid := fmt.Sprintf("%v", p.Pid)
+
                        pid := fmt.Sprintf("%v", p.Pid)
            program := fmt.Sprintf("%v", p.Name)
+
                        program := fmt.Sprintf("%v", p.Name)
            fmt.Printf("tcp %16v %20v %16v %14v %14v\n", ip_port, fip_port,
+
                        fmt.Printf("tcp %16v %20v %16v %14v %14v\n", ip_port, fip_port,
 
                                 p.State, pid, program)
 
                                 p.State, pid, program)
        }
+
                }
    }
+
        }
 
}
 
}
```
 

Revision as of 00:55, 12 March 2022

package main

import (

       "fmt"
       "github.com/drael/GOnetstat"
       "os"
       "strconv"
       // "syscall"
       // "errors"

)

func main() {

       // listports()
       killPort(9999)

}

func stopServer(proc *os.Process) {

       err := proc.Kill()
       if err != nil {
               panic(err.Error())
       }
       proc.Release()

}

func killPID(pid int) {

       process, err := os.FindProcess(pid)
       if err != nil {
               panic(err.Error())
       }
       process.Signal(os.Interrupt)

}

func killPort(port int64) {

       d := GOnetstat.Tcp()
       for _, p := range d {
               if p.State == "LISTEN" && p.Port == port {
                       fmt.Printf("Killing port, pid, name %v %v %v\n", port, p.Pid, p.Name)
                       pid, err := strconv.Atoi(p.Pid)
                       if err != nil {
                               panic(err.Error())
                       }
                       killPID(pid)
               }
       }

}

func listPorts() {

       d := GOnetstat.Tcp()
    fmt.Printf("Proto %16s %20s %14s %14s %14s\n", "Local Adress", "Foregin Adress",
            "State", "Pid", "Program")

    for _, p := range d {
            if p.State == "LISTEN" {
                    fmt.Printf("foo")
            }

            if p.State == "LISTEN" {
                    ip_port := fmt.Sprintf("%v:%v", p.Ip, p.Port)
                    fip_port := fmt.Sprintf("%v:%v", p.ForeignIp, p.ForeignPort)
                    pid := fmt.Sprintf("%v", p.Pid)
                    program := fmt.Sprintf("%v", p.Name)
                    fmt.Printf("tcp %16v %20v %16v %14v %14v\n", ip_port, fip_port,
                            p.State, pid, program)
            }
    }

}