仅当端口空闲时才执行命令的 B 脚本

仅当端口空闲时才执行命令的 B 脚本

你好,我有一个 bash 脚本,需要根据端口 80 是否已被使用来有条件地执行几行代码:

sudo git fetch origin;
sudo git checkout master;
sudo git pull;

--- 如果端口 80 开放

echo Starting Meteor;
export LC_ALL=C;
export ROOT_URL=$ROOT_URL;
sudo meteor --port 80;

- - 别的

echo Meteor already running;

然后,由于 Meteor 是一个长期运行的过程,因此,作为锦上添花,我如何让它在后台运行并退出脚本?(我尝试过 nohup,&,但我不知道最佳做法是什么?)

非常感谢

答案1

您可以使用:

netstat -ln | grep ":80 "

如果返回代码 ($?) 为 0,则表示端口 :80 上有东西,否则没有。例如:

netstat -ln | grep ":80 " 2>&1 > /dev/null 
if [ $? -eq 1 ]; then   
     ... your code here 
fi

相关内容