我有一个运行在端口3200上的进程,该进程与其他端口上的其他进程进行通信。
我知道我可以通过执行kill -9 $(lsof -t -i:3200)
杀死给定端口上的进程。
我的问题是,lsof
的输出还包含与我要杀死的进程进行通信的其他进程:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 16379 tirafesi 102u IPv6 156964 0t0 TCP localhost:41162->localhost:3200 (ESTABLISHED)
python3 16793 tirafesi 3u IPv4 158199 0t0 TCP localhost:51101->localhost:3200 (ESTABLISHED)
processtokill 16802 tirafesi 8u IPv4 156963 0t0 TCP *:3200 (LISTEN)
processtokill 16802 tirafesi 10u IPv4 158788 0t0 TCP localhost:3200->localhost:51101 (ESTABLISHED)
processtokill 16802 tirafesi 11u IPv4 156965 0t0 TCP localhost:3200->localhost:41162 (ESTABLISHED)
如何杀死端口3200上名为processtokill
的进程?
您想杀死端口3200上正在监听的进程,所以:
kill -9 $(lsof -t -i:3200 -sTCP:LISTEN)
我会尝试:
kill -9 $(lsof -i:3200 | grep ^processtokill | awk '{print $2}' | uniq)