当前位置: 技术问答>linux和unix
Linux Shell 脚本疑问
来源: 互联网 发布时间:2017-01-06
本文导语: if [ ! -z "$CATALINA_PID" ]; then if [ -f "$CATALINA_PID" ]; then echo "PID file ($CATALINA_PID) found. Is Tomcat still running? Start aborted." exit 1 fi fi -z 我知道是判断是否为null,! -z是否与-n是一个意思no...
if [ ! -z "$CATALINA_PID" ]; then
if [ -f "$CATALINA_PID" ]; then
echo "PID file ($CATALINA_PID) found. Is Tomcat still running? Start aborted."
exit 1
fi
fi
-z 我知道是判断是否为null,! -z是否与-n是一个意思not null?
上面是Tomcat的脚本CATALINA_PID这个我一直搞不明白。
1.这个值是在哪里保存的?
2.这个值保存在哪里?
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID
fi
echo v > ?
3.上面的语法是什么意思?
if [ ! -z "$CATALINA_PID" ]; then
if [ -f "$CATALINA_PID" ]; then
kill -0 `cat $CATALINA_PID` >/dev/null 2>&1
if [ $? -eq 1 ]; then
echo "PID file ($CATALINA_PID) found but no matching process was found. Stop aborted."
exit 1
fi
else
echo "$CATALINA_PID was set ($CATALINA_PID) but the specified file does not exist. Is Tomcat running? Stop aborted."
exit 1
fi
fi
新手求解释,上面是Tomcat的脚本。
|
判断中的!表示对条件取反
$CATALINA_PID
是一个变量,貌似保存了一个文件名称
echo $! > $CATALINA_PID
就是把$!表示的信息,定向到$CATALINA_PID这个变量对应的文件中
$!是上一个后台命令的进程号
$CATALINA_PID
是一个变量,貌似保存了一个文件名称
echo $! > $CATALINA_PID
就是把$!表示的信息,定向到$CATALINA_PID这个变量对应的文件中
$!是上一个后台命令的进程号
|
原理是完全可以猜测到的,你传start给Bootstrap的时候,它就是启动一个子进程跑tomcat,父进程wait等着。
你传stop给Bootstrap的时候,它可能就是读一下你传入的某个配置文件,根据里边存得进程号Kill掉那个tomcat进程,也不排除用其他进程间通信机制.
你传stop给Bootstrap的时候,它可能就是读一下你传入的某个配置文件,根据里边存得进程号Kill掉那个tomcat进程,也不排除用其他进程间通信机制.