java - tomcat重启后没有创建日志文件

标签 java tomcat amazon-web-services ssh amazon-ec2

我有一个 ec2 实例,我从该实例远程登录到远程 EC2 服务器(作为 ec2-user),我的应用程序托管在其 tomcat 服务器中。 tomcat 服务器为这个特定的应用程序生成一个日志文件。

如果我删除日志文件 (test_app.log) 并使用 startup.sh 命令手动重启服务器,则会创建一个具有相同名称的新日志文件,但是当我尝试通过远程登录来做到这一点,但它不起作用。 tomcat 服务器正在重新启动(我已经在我的浏览器上验证了它)但日志文件没有生成。 因为我想为我所有的应用程序运行一个单独的日志,我首先通过杀死它来停止 tomcat,然后我将 test_app.log 移动到带有时间戳的其他名称,然后重新启动服务器。 当我第一次使用自动脚本进行 ssh 时,一切都按上面的计划进行,但从下一次迭代开始,什么也没有发生。即使在使用 touch 之后,也没有创建新文件。

请注意,如果我手动完成整个过程,所有命令都会正常运行并且一切正常。

ssh -i $Public_Key_Loc -tt $Remote_user@$PrivateIpSPL <<-ENDSSH
sudo su - spluser
kill -9 $(ps -elf | grep tomcat|cut -d ' ' -f6 | head -n 1)
mv /opt/tomcat/current/logs/spl/spl-test-tool/test_app.log /opt/tomcat/current/logs/spl/spl-test-tool/$(date "+%Y.%m.%d-%H.%M.%S").test_app.log
touch test_app.log
chown spluser:splgrp test_app.log 
chmod 644 test_app.log
/opt/tomcat/current/bin/startup.sh 
exit
exit
ENDSSH

最佳答案

我认为罪魁祸首是触摸命令,该文件将在当前文件夹中创建,我认为您也应该为此提供绝对路径。

关于java - tomcat重启后没有创建日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860327/

相关文章:

java - 沙盒静态字段

java - 纯 java jdbc 驱动程序(类型 4)是否调用 native 数据库 API 函数(例如 OCI 和 DB2/CLI)?

swift - 亚马逊签名创建

java - Tomcat 日志策略

windows - Amazon EC2 (Windows) 实例上的 Tomcat 服务器没有远程响应

amazon-web-services - CloudFormation 命令列表 cwd

c# - 在 AWS CDK 中使用常量 JSON 参数创建规则 (C#)

java - 比较从同一基派生的不同类的对象

java - 检查代码中的黑莓模拟器

tomcat - Apache Tomcat 和 Jenkins 有什么区别?