Apache Tomcat的startup.sh中的符号

时间:2013-04-19 07:40:21

标签: linux shell tomcat daemon

我一直在尝试创建自己的'守护进程'java线程。

我无法得到我想要的东西,所以我很好奇Tomcat如何保持活力 断开ssh连接后。

所以我决定围绕Tomcat源文件,看看我是否能找到'魔术'。
在startup.sh中,我试图在互联网上找到一些奇怪的东西而没有运气

在startup.sh中

    # resolve links - $0 may be a softlink
PRG="$0"

while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
    PRG="$link"
  else
    PRG=`dirname "$PRG"`/"$link"
  fi
done

PRGDIR=`dirname "$PRG"`
EXECUTABLE=catalina.sh

# Check that target executable exists
if $os400; then
  # -x will Only work on the os400 if the files are: 
  # 1. owned by the user
  # 2. owned by the PRIMARY group of the user
  # this will not work if the user belongs in secondary groups
  eval
else
  if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
    echo "Cannot find $PRGDIR/$EXECUTABLE"
    echo "The file is absent or does not have execute permission"
    echo "This file is needed to run this program"
    exit 1
  fi
fi 

exec "$PRGDIR"/"$EXECUTABLE" start "$@"
  1. 什么是'$ 0'?
  2. 什么是'$ @'?
  3. 他们做了什么?
    修改
    也许这与OQ没什么关系,但我只想分享我发现的东西 在分析了Apache Tomcat的源代码后,我发现了它。我不确定这是不是 Tomcat实际上是如何运行的。
    我想要的就像一个守护进程 首先,你需要一个用java编写的启动器。在Launcher中,创建一个进程和exec(“java yourDaemonToBe”);
    希望这可以帮助。

1 个答案:

答案 0 :(得分:0)

您运行的shell脚本的名称是$0,在数组$@中找到了argv,即脚本的命令行参数。