我正在编写一个脚本来启动要使用某个端口号的服务器。 在某些情况下,这个港口被占领。 我想知道如何检查它在bash中,所以我可以以适当的方式作出反应。
我如何检查linux上某些端口是否被占用?
您可以使用netcat来检查端口是否正在监听:
PORT_STATUS=$(nc -v <host> -z <port number> 2>&1 | grep open | wc -l ) if [[ "$PORT_STATUS" = "1" ]];then echo Port is occupied fi
这当然只适用于没有防火墙阻止的netcat。 但是,如果你在服务器本地运行它,那么至less应该没有任何问题。
如果你有TCP端口,你可以检查netstat,这样的事情可能会工作:
netstat -ntp | grep -v '::' | awk '{print $4}' | grep -E '^[[:digit:]]+' | awk -F: '{print $2}' | sort -n | uniq
当然这不是primefaces性的,所以在检查操作之后但是在你的服务开始之前可能会有一些端口被占用。