gpt4 book ai didi

linux - 为什么我不能在shell脚本中使用catalina启动tomcat

转载 作者:行者123 更新时间:2023-11-28 23:40:35 25 4
gpt4 key购买 nike

我很好奇 su -c "cmd arg"和 tomcat 如何在 shell 脚本中工作。

我从 cmd 行手动运行:

su -m tomcat -c /path/to/tomcat/catalina.sh start

这没有用。但是,如果我将 cmd 放在引号中,它就会起作用

su -m tomcat -c "/path/catalina.sh start"

在 shell 脚本中(尝试运行 chkconfig 以便它自动启动),我有这样的东西:

START="/path/catalina.sh start"
...
...
su -m tomcat -c "$START"

命令在引号中,因为我手动发现需要引号。当我运行脚本时,输出返回为:

Using CATALINA_BASE:   /apps/local/apache-tomcat-7.0.42
Using CATALINA_HOME: /apps/local/apache-tomcat-7.0.42
Using CATALINA_TMPDIR: /apps/local/apache-tomcat-7.0.42/temp
Using JRE_HOME: /usr/java/default
Using CLASSPATH: /apps/local/apache-tomcat-7.0.42/bin/bootstrap.jar:/apps/local/apache-tomcat-7.0.42/bin/tomcat-juli.jar
Usage: catalina.sh ( commands ... )
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result
version What version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined

这个输出就像我手动运行 catalina.sh 没有任何启动/停止参数。
为什么shell脚本中的启动/停止选项被忽略了?是的,我用 startup.sh 和 shutdown.sh 替换了 catalina.sh,这使得脚本可以工作,但我仍然很好奇为什么在脚本中,su -c "cmd arg"似乎忽略了命令的参数部分。

预先感谢您的解释。如果它像 shell 扩展和引号删除一样简单,我会自杀,除非我做一些事情让它不会丢失引号。

最佳答案

我在我的 tomcat 初始化文件中使用以下内容:

...
su -l $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
...

-l 创建一个登录 shell 并允许您传递所需的信息。

关于linux - 为什么我不能在shell脚本中使用catalina启动tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108222/

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