Linux获取监听指定端口的进程PID
来源:互联网 发布:数据透视表值显示文本 编辑:程序博客网 时间:2024/05/20 00:16
在 Linux 下经常需要杀死(重启)监听某端口的进程, 因此就写了一个小脚本, 通过 ss 命令获取监听制定端口的进程 PID, 然后通过 kill 命令结束掉进程:
#!/bin/sh
# set -x
[[ $# -lt 1 ]] && { echo 'param error: must have one param(port)'; exit -1; }
[[ $# -gt 1 ]] && { echo 'param error: only support one param(port)'; exit -1; }
function get_pid_by_listen_port() {
pattern_str="*:$1\\b"
pid=$(ss -n -t -l -p | grep "$pattern_str" | column -t | awk -F ',' '{print $(NF-1)}')
# 当版本号为 "ss utility, iproute2-ss161009" 时, ss 命令输出格式为:
# LISTEN 0 5 *:8000 *:* users:(("python2.7",pid=7130,fd=3))
# 此时需要进一步处理, 只获取进程 PID 值.
[[ $pid =~ "pid" ]] && pid=$(echo $pid | awk -F '=' '{print $NF}')
echo $pid
}
pid=$(get_pid_by_listen_port $1)
if [ -n "$pid" ]
then
echo "find pid: $pid, kill it..."
kill $pid
else
echo 'cannot find listened port: '$1
exit -1
fi
如果只是想放入 .bashrc 或 .zshrc 的话, 可以使用下面这个版本:
function kill_pid_by_listen_port() {
[[ $# -lt 1 ]] && { echo 'param error: must have one param(port)'; return -1; }
[[ $# -gt 1 ]] && { echo 'param error: only support one param(port)'; return -1; }
pattern_str="*:$1\\b"
pid=$(ss -n -t -l -p | grep "$pattern_str" | column -t | awk -F ',' '{print $(NF-1)}')
# 当版本号为 "ss utility, iproute2-ss161009" 时, ss 命令输出格式为:
# LISTEN 0 5 *:8000 *:* users:(("python2.7",pid=7130,fd=3))
# 此时需要进一步处理, 只获取进程 PID 值.
[[ $pid =~ "pid" ]] && pid=$(echo $pid | awk -F '=' '{print $NF}')
[[ -n "$pid" ]] && { "find pid: $pid, kill it..." }
[[ -n "$pid" ]] || { echo "not found listened port: $1" }
}
- Linux获取监听指定端口的进程PID
- [Win32]获取指定进程的父进程PID
- 嵌入式 一个进程获取另一个指定名称进程的PID
- Linux获取进程pid
- linux下获取指定exe进程pid和详细信息的命令
- linux C 获取pid终极父进程的PID
- 获取tcp/udp端口对应的进程pid
- 获取tcp/udp端口对应的进程pid
- Linux通过监听的端口管理进程
- windows 查看监听指定端口号的进程id
- linux 下查看端口占用进程的pid
- Linux 精准获取进程pid
- cmd下获取指定进程名的pid号,并通过taskkill结束该进程
- Linux 查看 系统正在监听的端口的进程
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- linux根据pid获取进程名和获取进程pid(c语言获取pid)
- linux下查看监听端口对应的进程
- linux下查看监听端口对应的进程
- Java并发编程规则:判定对象是否存在多线程访问
- 为应用加上Android4.4新特性的全屏模式-沉浸模式(Full-screen Immersive Mode)。
- dw中,在层属性设置中,visible, hidden, scroll, auto, .的含义
- Android Studio 中方法数65536 或超过64K的解决方案
- Android Shape绘制虚线
- Linux获取监听指定端口的进程PID
- xmd:AP transaction timeout: ACK = 0x01, expected=0x02)
- 如何删除一张表重复的记录?
- redis登录测试hydra以及python脚本方式
- mysql忘记密码处理
- sdk中adb连接手机经常出现找不到设备的解决办法
- java使用List lists = new ArrayList()出错
- CSS width:100%
- Selenium 安装