Bug 31853 - tomcat и sysvinit
Summary: tomcat и sysvinit
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: tomcat (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: viy
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-02 15:10 MSK by Chess
Modified: 2016-03-13 16:40 MSK (History)
4 users (show)

See Also:


Attachments
tomcat.init (8.56 KB, application/octet-stream)
2016-03-02 16:18 MSK, viy
no flags Details
новый init (9.63 KB, application/octet-stream)
2016-03-03 22:35 MSK, viy
no flags Details
новый init с вызовом tomcat-sysv (9.63 KB, application/octet-stream)
2016-03-05 01:55 MSK, viy
no flags Details
tomcat sysV wrapper (2.38 KB, application/octet-stream)
2016-03-05 01:56 MSK, viy
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chess 2016-03-02 15:10:23 MSK
Нет скрипта для запуска
Comment 1 viy 2016-03-02 16:18:00 MSK
Created attachment 6657 [details]
 tomcat.init
Comment 2 viy 2016-03-02 16:19:05 MSK
попробуйте, пожалуйста, приложенный tomcat.init.
Если работает, я его упакую.
Comment 3 viy 2016-03-03 14:28:48 MSK
как, работает?
Comment 4 Chess 2016-03-03 16:38:18 MSK
Както не очень.
Скрипт запустить томкат не смог, хотя у уже запущенного до этого показал статус, вернее запустил сказал все ОК но томкат не отвечал, хотя в процессах числился.

Сейчас разломав систему и выкосив из нее dbus и systemd пользуюсь скриптом из пакета 7 томката
Comment 5 Chess 2016-03-03 16:43:59 MSK
Мой косяк, забыл tomcat.ini переименовать в tomcat а в нем NAME="$(basename $0)"

Но все равно не запускает: разница в процессах (ps axuwwww) запуска скриптом от 7 и этим


--- tomcat.old  2016-03-03 16:34:22.272993671 +0300
+++ tomcat.new  2016-03-03 16:28:01.015177967 +0300
@@ -4,7 +4,7 @@
 -XX:MaxNewSize=512m -XX:SurvivorRatio=8 -XX:+DisableExplicitGC
 -Dcom.sun.security.enableCRLDP=true -Duser.timezone=Europe/Minsk
 -classpath
-:/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/lib/java/commons-daemon.jar
+:/usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:
 -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat
 -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp
 -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties
Comment 6 Chess 2016-03-03 16:51:10 MSK
и еще забыл я от 7 взял скрипт /usr/sbin/tomcat
Comment 7 viy 2016-03-03 18:03:52 MSK
спасибо!
попробую /usr/sbin/tomcat подправить.
Comment 8 viy 2016-03-03 22:35:34 MSK
Created attachment 6658 [details]
новый init
Comment 9 viy 2016-03-03 22:36:39 MSK
попробуйте, пожалуйста, подправленный файл для tomcat8
Comment 10 Chess 2016-03-04 15:51:05 MSK
(В ответ на комментарий №9)
> попробуйте, пожалуйста, подправленный файл для tomcat8

запускать то он запускает но скрипт не возвращается в консоль а продолжает висеть

/tomcat start
Starting tomcat:

я думаю это из-за того что java запускается без класа /usr/lib/java/commons-daemon.jar т.е. не уходит в фон.

хотя приложения работают
Comment 11 viy 2016-03-04 16:01:06 MSK
спасибо большое за тестирование! 
придется мне отдельный wrapper скрипт cделать,
tomcat-sysvinit и его дергать из init скрипта.
я отдельно напишу, кгода выложу.
Comment 12 viy 2016-03-05 01:55:51 MSK
Created attachment 6660 [details]
новый init с вызовом tomcat-sysv
Comment 13 viy 2016-03-05 01:56:47 MSK
Created attachment 6661 [details]
tomcat sysV wrapper
Comment 14 viy 2016-03-05 01:58:28 MSK
кандидаты на релиз:
прилагаемый tomcat sysV wrapper установить как
/usr/sbin/tomcat-sysv
и он будет дергаться из tomcat init скрипта.
Comment 15 Chess 2016-03-05 10:39:11 MSK
(В ответ на комментарий №14)
> кандидаты на релиз:
> прилагаемый tomcat sysV wrapper установить как
> /usr/sbin/tomcat-sysv
> и он будет дергаться из tomcat init скрипта.

работает но

./tomcat version
/usr/sbin/tomcat-sysv: line 23: .: /etc/sysconfig/: is a directory

а если в tomcat-sysv определить NAME=tomcat то все ОК

1. такое ощущение что переменная NAME определенная в init не доходит до врапера
2. наверное надо два мета пакета (один для sysv второй для systemd) чтобы не тащить systemd по зависимостям в систему с SYSV
Comment 16 viy 2016-03-05 19:23:30 MSK
отправил
#160579 BUILDING #1 [locked] sisyphus srpm=tomcat-8.0.32-alt1_4jpp8.src.rpm
надеюсь пофиксил все.
Comment 17 viy 2016-03-05 20:25:15 MSK
по дороге еще были фикс, в сизиф приехал
[#160581] DONE srpm=tomcat-8.0.32-alt1_4jpp8.src.rpm
Comment 18 Chess 2016-03-13 14:54:15 MSK
(В ответ на комментарий №16)
> отправил
> #160579 BUILDING #1 [locked] sisyphus srpm=tomcat-8.0.32-alt1_4jpp8.src.rpm
> надеюсь пофиксил все.

не запускает приложения
выглядит это так:
service tomcat start => все ОК

но в логах нету запуска самих приложений из webapp

фикс

--- a/rc.d/init.d/tomcat
+++ b/rc.d/init.d/tomcat
@@ -202,7 +202,7 @@ function start() {
 #        $SU $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" \
 #            >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
 #    else
-        [ "$RETVAL" -eq "0" ] && $SU $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
+        [ "$RETVAL" -eq "0" ] && $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"

и все работает как и раньше
заодно наверное в логротате надо добавить

su tomcat tomcat
Comment 19 viy 2016-03-13 15:30:28 MSK
отправил
task #161278: added #100: build srpm tomcat-8.0.32-alt2_4jpp8.src.rpm
с исправленным init ($SU - $TOMCAT_USER).

по поводу su tomcat tomcat в logrotate - 
не могли бы вы у себя добавить и проверить, не вызывает ли проблем?
если проблем не будет, напишите и я добавлю в релиз.
Comment 20 Chess 2016-03-13 16:26:42 MSK
(В ответ на комментарий №19)
> отправил
> task #161278: added #100: build srpm tomcat-8.0.32-alt2_4jpp8.src.rpm
> с исправленным init ($SU - $TOMCAT_USER).
> 
> по поводу su tomcat tomcat в logrotate - 
> не могли бы вы у себя добавить и проверить, не вызывает ли проблем?
> если проблем не будет, напишите и я добавлю в релиз.

нет не вызывает, лог catalina.out ротируется а без su ругается

rotating pattern: /var/log/tomcat/catalina.out /var/log/tomcat/tomcat-initd.log forced from command line (52 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/tomcat/catalina.out
error: skipping "/var/log/tomcat/catalina.out" because parent directory has insecure permissions (it's not owned by "root"); consider using "su" directive in config file to tell logrotate which user/group should be used for rotation.
considering log /var/log/tomcat/tomcat-initd.log
error: skipping "/var/log/tomcat/tomcat-initd.log" because parent directory has insecure permissions (it's not owned by "root"); consider using "su" directive in config file to tell logrotate which user/group should be used for rotation.
Comment 21 viy 2016-03-13 16:31:43 MSK
--- tomcat-8.0.logrotate~       2016-03-02 19:56:25.000000000 +0200
+++ tomcat-8.0.logrotate        2016-03-13 15:28:53.000000000 +0200
@@ -5,4 +5,5 @@
     compress
     missingok
     create 0644 tomcat tomcat
+    su tomcat tomcat
 }

ок?
Comment 22 viy 2016-03-13 16:40:40 MSK
task #161279: added #100: build srpm tomcat-8.0.32-alt3_4jpp8.src.rpm