gpt4 book ai didi

linux - Apache Tomcat 的 startup.sh 中的符号

转载 作者:行者123 更新时间:2023-11-28 23:44:24 27 4
gpt4 key购买 nike

我一直在尝试创建自己的“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. 什么是“$@”?

他们是做什么的?
编辑
也许这真的与 OQ 没有太大关系,但我只是想分享我的发现。
分析了Apache Tomcat的源代码后,我想通了。我不确定这是不是Tomcat 实际是如何运行的。
我想要的是类似守护进程的东西。
首先,您需要一个用 java 编写的启动器。从 Launcher 中创建一个进程并执行 ("java yourDaemonToBe");
希望这可以帮助。

最佳答案

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

关于linux - Apache Tomcat 的 startup.sh 中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16099678/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com