我一直在尝试制作自己的“守护程序”Java 线程。
我不能完全得到我想要的东西,所以我很好奇即使在我断开 ssh 连接后 Tomcat 是如何保持活力的。
所以我决定浏览一下 Tomcat 源文件,看看我是否能找到“魔法”。
在 startup.sh 中,我试图在 Internet 上找到一些看起来很奇怪的东西,但没有运气。
在启动.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 "$@"
- 什么是'$0'?
- '$@' 是什么?
他们在做什么 ?
编辑
也许这真的与 OQ 没有太大关系,但我只是想分享我的发现。
分析了 Apache Tomcat 的源代码后,我想通了。我不确定这是否是 Tomcat 实际运行的方式。
我想要的是类似于守护进程的东西。
首先,您需要一个用 java 编写的启动器。在启动器中,创建一个进程并 exec("java yourDaemonToBe");
希望这可以帮助。