Работа, запущенная из cron, была завершена

Работа, запущенная из cron, была завершена

Я запустил процесс Java из задания cron с помощью этой команды

Это моя запись cron

* * * * * 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

Связанный контент