本文链接:个人站 | 简书 | CSDN
版权声明:除特别声明外,本博客文章均采用 BY-NC-SA 许可协议。转载请注明出处。
重启服务之前往往需要检查一下是否还有未处理完的请求。此时可以使用 ss
命令查看端口是否还有 TCP 连接。例如:
pi@raspberrypi:~ $ ss -nt state established src 192.168.1.26:8888
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 0 192.168.1.26:8888 192.168.1.25:50390
我们可以统计这条命令输出的行数,若小于 2,则说明服务已经处于闲置状态。脚本如下:
#!/bin/bash
# 获取本机 IP
host=$(ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | awk '{print $2}' | tr -d "addr:")
# 超时时间
timeout=3600
check(){
port="$1"
begin=$(date +'%s')
while true
do
current=