سؤال أمر الخدمة لا يعمل مع tomcat7


لدي Ubuntu 16.04 تثبيت جديد ، حيث قمت بتثبيت Tomcat7 باستخدام apt-get installوأواجه بعض المشاكل في محاولة التفاعل مع الخدمة باستخدام service أمر.

أفهم أنه إذا تم تثبيت Tomcat على النظام ، فإن الطريقة الصحيحة للتفاعل مع الخدمة تستخدم service أمر.

بعد إعادة تشغيل النظام ، أرى أن Tomcat7 ينشر تطبيقًا للحرب كما هو متوقع ، ويبدو أن كل شيء يعمل بشكل صحيح في تطبيق الويب.

ولكن إذا أردت إعادة تشغيل جهاز Tomcat:

sudo service tomcat7 restart

ارى فيها catalina.out سجل أن هناك بعض الأخطاء التي تسببها العنوان قيد الاستخدام بالفعل. هناك أي تطبيق آخر باستخدام نفس المنفذ.

إذا كنت تحاول إيقاف القط ، كما هو الحال دائما service tomcat7 stop:

usr@Srv2:~$ sudo service tomcat7 stop
[sudo] password for qgenviewer: 
usr@Srv2:~$ ps -aux | grep tomcat7
tomcat7    1409  2.5  2.3 9268692 377788 ?      Sl   12:11   0:27     /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Xms512m -Xmx6144m -XX:+UseConcMarkSweepGC -Djava.endorsed.dirs=/usr/share/tomcat7/endorsed -classpath /usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar -Dcatalina.base=/var/lib/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.io.tmpdir=/tmp/tomcat7-tomcat7-tmp org.apache.catalina.startup.Bootstrap start
usr+   1762  0.0  0.0  21316   924 pts/0    S+   12:29   0:00 grep --    color=auto tomcat7

لذلك يبدو service الأمر لا يعمل لأن Tomcat لا يزال قيد التشغيل. إذا حاولت service tomcat7 status، الإخراج كالتالي:

usr@Srv2:~$ sudo service tomcat7 status
● tomcat7.service - LSB: Start Tomcat.
   Loaded: loaded (/etc/init.d/tomcat7; bad; vendor preset: enabled)
   Active: failed (Result: exit-code) since vie 2016-05-06 12:11:29 CEST; 21min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1356 ExecStart=/etc/init.d/tomcat7 start (code=exited, status=1/FAILURE)
    Tasks: 38 (limit: 512)
   CGroup: /system.slice/tomcat7.service
           └─1409 /usr/lib/jvm/java-7-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.C

may 06 12:11:24 Srv2 systemd[1]: Starting LSB: Start Tomcat....
may 06 12:11:24 Srv2 tomcat7[1356]:  * Starting Tomcat servlet  engine tomcat7
may 06 12:11:29 Srv2 tomcat7[1356]:    ...fail!
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Control process exited, code=exited status=1
may 06 12:11:29 Srv2 systemd[1]: Failed to start LSB: Start Tomcat..
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Unit entered failed state.
may 06 12:11:29 Srv2 systemd[1]: tomcat7.service: Failed with result 'exit-code'.
may 06 12:28:38 Srv2 systemd[1]: Stopped LSB: Start Tomcat..

أي مساعدة من ما يحدث ...؟ يبدو في النهاية مثل service tomcat7 لا يعمل. ماذا يمكن أن يكون السبب؟ ثم ، من الذي يبدأ خدمة tomcat عند بدء تشغيل النظام؟ وكيف يمكنني إيقاف أو إعادة تشغيل خدمة tomcat7؟

شكرا لك على وقتك.

تصحيح

من أجل إعطاء مزيد من المعلومات ، واتباع نصيحةJens Grivolla ، هذا هو الناتج لـ pstree:

usr@Srv2:~$ pstree -lsup 1409
systemd(1)───java(1409,tomcat7)─┬─{java}(1412)
                                ├─{java}(1418)
                                 ...
                                ├─{java}(2262)
                                └─{java}(2313)

2
2018-05-06 10:49


الأصل


هل نظرت إلى أي ملفات سجلات أخرى على سبيل المثال؟ الرسائل؟ - Simplexion


الأجوبة:


يمكنك تجربة ما يلي:

  • احصل أولاً على PID لخدمة تشغيل tomcat ، على سبيل المثال ، $ ps aux|grep tomcat
  • ثم حاول أن ترى كيف تم إطلاقه باستخدام pstree (استعمال man pstree لفهم الخيارات المستخدمة) ، على سبيل المثال ،

    $ pstree -lsup 26276
    systemd(1)───java(26276,tomcat7)─┬─{java}(26277)
                                     ├─{java}(26278)
                                     ├─{java}(26279)
                                     ├─{java}(26280)
                                     ├─...
                                     └─{java}(1252)
    

لذلك في حالتي تم إطلاقه بشكل واضح من قبل systemd. إذا رأيت شيئًا مختلفًا ، فعلى الأقل لديك فكرة عن مكان التحقيق ...


1
2018-05-06 11:03



شكرا على ذلك ، لقد قمت بتحرير سؤالي ، مضيفا ناتج pstree ، ويبدو ، كما في حالتي ، تم إطلاق هتك من systemd. - xarmengol
آسف ، ليس لدي أي فكرة إلى أين أذهب من هناك. بالطبع يمكن أن يكون لديك العديد من تعريفات الخدمة للقط (على سبيل المثال واحد يسمى tomcat7 وآخر يسمى tomcat) ، ولكن هذا يبدو غير محتمل. - Jens Grivolla