公司Tomcat项目使用了liquibase做数据库版本管理,但在数据库为空的情况下,执行不成功。奇怪的是使用 service tomcat start 可以成功, 但使用 systemctl start tomcat 就不行。
日志打印了一句:
Service exit with a return value of 143
查了一下: https://bugs.archlinux.org/task/33372 有人说是 jsvc 的默认超时时间是20秒(计时了一下真是20秒),需要加一个参数
jsvc -wait 20 class MyClass
看不懂这个class的参数是啥意思。。
查看daemon.sh 找到 有一句:
问题解决
那我把这个参数 $SERVICE_START_WAIT_TIME 的值的时间 10秒改成240秒就行 , 问题解决(๑*◡*๑)
------------------------------------------------------------------------
原因:
要使用systemctl 代替 service, 配置 tomcat: https://blog.csdn.net/javandroid/article/details/81088494 需要用到 bin目录下的 commons-daemon-native.tar.gz , 将其解压编译,获得 unix/jsvc, 复制到 bin目录下
因为service tomcat start 没有用到jsvc, 所以不会有超时限制,但使用 systemctl start tomcat 有个jsvc的默认20秒限制