Как узнать, почему процесс был убит на сервере

На днях я запустил работу на нашем сервере, набрав 70% памяти. Когда я зарегистрировался на один день позже, чтобы проверить его, работа была убита (в терминале она была убита).

Мой вопрос: могу ли я узнать, что произошло?

Было ли это потому, что другой пользователь начал работу, которая заняла> 30% памяти, поэтому мой процесс был убит? Администратор убил его? ?

Есть ли способ узнать, что именно произошло?

1
задан 14 December 2015 в 13:43

1 ответ

Итак, если вы хотите немедленно увидеть журнал ядра, то это будет убито, завершите его следующим скриптом bash:

#!/bin/bash
your_job_here
ret=$?
#
#  returns > 127 are a SIGNAL
#
if [ $ret -gt 127 ]; then
        sig=$((ret - 128))
        echo "Got SIGNAL $sig"
        if [ $sig -eq $(kill -l SIGKILL) ]; then
                echo "process was killed with SIGKILL"
                dmesg > $HOME/dmesg-kill.log
        fi
fi

Примечание: «your_job_here» - это имя программы / задания вы хотите запустить. Этот скрипт проверяет код возврата программы и проверяет, был ли он убит с помощью SIGKILL, и если да, то сразу же выгрузите dmesg в свой домашний каталог в файле dmesg-kill.log

Hope что помогает

0
ответ дан 23 May 2018 в 15:03

Другие вопросы по тегам:

Похожие вопросы: