2016-09-08 80 views
1

我使用go exec ssh來執行遠程服務器上的「tail -f」。但是我終止了進程,但「tail -f」仍然在遠程服務器上運行。 我能做些什麼來殺死遠程服務器上的「tail -f」運行?代碼如下 。 go excete ssh命令並且不能殺死遠程服務器上的命令

package main 

import (
    "os/exec" 
    "github.com/astaxie/beego" 
    "time" 
) 
func main() { 
    var cmd = exec.Command("ssh","-t", "-p", "9122","[email protected]" ,"tail -f /log.out") 
    var err error 
    cmd.Start() 
    time.Sleep(time.Second*5) 
    err = cmd.Process.Kill() // when I killed this Process. The remote server [email protected] still run 'tail -f /log.out' 
    beego.Error(err) 
} 

回答

0

只需在參數中添加一個「-t」即可。

var cmd = exec.Command("ssh","-t", "-t", "-p", "9122","[email protected]" ,"tail -f /log.out") 

欲瞭解更多信息,請參閱本link

0

你可以嘗試在我的設置殺害SSH

err = cmd.Process.Kill() 

這部作品之前,控制-C

w, err := cmd.StdinPipe() 
ctlC, err := hex.DecodeString(`\x03`) //CtlC on most machines 
w.Write(ctlC) 

發送

相關問題