0
我試圖殺死一個Python腳本的TCP連接。 tcpkill運行,但給出了任何數據傳送該消息:tcpkill:寫:操作不允許與子進程.Popen
tcpkill: write: Operation not permitted
***.***.***.***:48868 > ***.***.***.***:6905: R 1868230658:1868230658(0) win 0
我的Python代碼是:
@staticmethod
def kill_connection(ip, interface="eth0"):
def tcp_kill(ip, interface):
logging.info('Killing ' + ip + ' connection with tcpkill.')
p = subprocess.Popen('/sbin/tcpkill -i ' + interface + ' -9 ip host ' + ip, stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)
time.sleep(30)
p.terminate()
t = threading.Thread(target=tcp_kill, args=(ip, interface))
t.daemon = True
t.start()
我試圖「shell」選項是開/關,預執行功能設定爲OS .setguid。沒有機會。
手動運行tcpkill可以正常工作。
這是什麼原因造成的,以及如何讓它正確運行?
你是否以root身份運行腳本? –
是的,root運行腳本 – beremaran
請嘗試運行tcpkill命令「手工」,作爲根在你的bash shell中,看看結果是否一樣 –