Von Cron gestarteter Job wurde beendet

Von Cron gestarteter Job wurde beendet

Ich habe einen Java-Prozess von einem Cron-Job aus mit diesem Befehl gestartet

Dies ist mein Cron-Eintrag

* * * * * sh /tmp/runScript.sh

Der Zweck von runScript.sh besteht darin, eine Logik anzuwenden und einen Java-Prozess zu starten.

./runJavaProcess.sh >> java_process.out 2>&1

Der Job wird automatisch beendet, ohne dass ein Eintrag in java_process.out oder in den Java-Protokollen erfolgt. Ich kann nichts in derkern.logoder/var/log/Nachrichtenoder/var/log/Nachrichtenim Zusammenhang damit, wie der Prozess beendet wurde.

Ich sehe, dass der Prozess einwandfrei startet, aber nach ein paar Minuten/Stunden wird er beendet, ohne dass es Hinweise darauf gibt, warum oder wie er beendet wurde. Gibt es eine Möglichkeit, den Grund für die Beendigung des Prozesses herauszufinden?

Ich verwende CentOS Linux Version 7.3.1611 (Core).

Antwort1

Das java_process.outkönnte in Ihrem Home-Verzeichnis vorhanden sein, d. h ~/java_process.out. Ihr Skript hat nur den Dateinamen und cronwird in Ihrem Home-Verzeichnis ausgeführt. Das Hinzufügen des Pfads könnte hilfreich sein.

Antwort2

  1. Sie sollten nachsehen /var/log/cron, /var/log/messagesum einen Einblick in das Geschehene zu erhalten.
  2. Ich schlage vor, dass Sie Ihren Crontab-Eintrag wie unten beschrieben bearbeiten, um die Ausgabe dessen zu erhalten, was bei der Ausführung passiert.

    * * * * * sh /tmp/runScript.sh 2>&1 /tmp/insight.log
    
  3. Möglicherweise runJavaProcess.shbenötigt Ihr Skript zur Ausführung einige Umgebungsvariablen. Wenn Sie diese nicht wie unten beschrieben in der Crontab-Zeile (oder in Ihren Skripten) angeben, werden sie nicht gefunden:

    * * * * *  . $HOME/.bash_profile; sh /tmp/runScript.sh 2>&1 /tmp/insight.log
    

Antwort3

Ich habe die Grundursache gefunden. Es gab einen Segmentierungsfehler im Java-Prozess. Das Fehlerprotokoll wurde im Verzeichnis /root/ erstellt.

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f11f1b980e5, pid=22395, tid=0x00007f11b39be700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_112-b15) (build 1.8.0_112-b15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.112-b15 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# J 8563 C2 java.nio.DirectByteBuffer.getLong(I)J (16 bytes) @ 0x00007f11f1b980e5 [0x00007f11f1b980a0+0x45]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x00007f12023f72a0):  JavaThread "BatchlogTasks:1" daemon [_thread_in_Java, id=23777, stack(0x00007f11b397e000,0x00007f11b39bf000)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x000000000fd68aae

verwandte Informationen