公司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秒限制