Golnag killing port pid

From UVOO Tech Wiki
Revision as of 00:55, 12 March 2022 by Busk (talk | contribs) (Created page with "``` package main import ( "fmt" "github.com/drael/GOnetstat" "os" "strconv" // "syscall" // "errors" ) func main() { // listports...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
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)
         }
    }
}