cron에서 시작된 작업이 종료되었습니다.

cron에서 시작된 작업이 종료되었습니다.

이 명령을 사용하여 크론 작업에서 Java 프로세스를 시작했습니다.

이것은 내 크론 항목입니다.

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

runScript.sh의 목적은 일부 논리를 적용하고 Java 프로세스를 시작하는 것입니다.

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

java_process.out 또는 Java 로그에 항목이 없으면 작업이 자동으로 종료됩니다. 나는 그 안에 아무것도 볼 수 없다.kern.log또는/var/log/메시지또는/var/log/메시지프로세스가 어떻게 종료되었는지와 관련이 있습니다.

프로세스가 정상적으로 시작되는 것을 볼 수 있지만 몇 분/시간 후에 프로세스가 종료된 이유나 방법에 대한 흔적도 없이 종료됩니다. 프로세스가 종료된 이유를 알아낼 수 있는 방법이 있습니까?

저는 CentOS Linux 릴리스 7.3.1611(Core)을 실행하고 있습니다.

답변1

이는 java_process.out홈 디렉토리, 즉 에 존재할 수 있습니다 ~/java_process.out. 스크립트에는 파일 이름만 있으며 cron홈 디렉터리에서 실행됩니다. 경로를 추가하면 도움이 될 수 있습니다.

답변2

  1. 무슨 일이 일어났는지 알아보기 위해 확인하는 /var/log/cron것이 아니라 확인해야 합니다 ./var/log/messages
  2. 실행 시 발생하는 결과를 얻으려면 crontab 항목을 아래와 같이 편집하는 것이 좋습니다.

    * * * * * sh /tmp/runScript.sh 2>&1 /tmp/insight.log
    
  3. 스크립트를 실행하려면 일부 환경 변수가 필요할 수 있으며 runJavaProcess.sh, 아래와 같이 crontab 줄(또는 스크립트)에서 해당 변수를 소싱하지 않으면 찾을 수 없습니다.

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

답변3

근본 원인을 찾았습니다. Java 프로세스에서 세그먼트화 오류가 발생했습니다. 오류 로그는 /root/ 디렉터리에 생성되었습니다.

# 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

관련 정보