使用nohup后台启动服务,服务无法拉起问题
服务在现场运行,突然后台脚本runGateway.sh无法将服务UAC拉起来,使用nohup命令后台启动,runGateway.sh脚本判断如下
this_dir="$( cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)"
while true; do
if ! (ps -ef | grep "${EXEC}" | grep -v grep | grep -v lsof ) >/dev/null ; then
$this_dir/$EXEC
fi
sleep 6
done
注:服务名为UAC,日志为UAC.log
原因:由于使用tail -f命令打开了日志UAC.log,后台脚本runGateway.sh没有对服务名进行全量匹配,即“ps -ef | grep UAC”,打开日志的命令没有退出,导致后台脚本检测到UAC存在导致服务无法正常拉起。
修改:ps -ef | grep -W "${EXEC}" 对服务名称全量匹配,解决此问题