Я запускаю алгоритм на сервере, и алгоритм требует много времени для завершения. Но по какой-то причине процесс автоматически убивается. Я не уверен точно в причине этого, и погуглив я нашел несколько скриптов, которые могут дать мне больше информации.
./temp.sh: line 2: 30539 Killed ./process file1
Got SIGNAL 9
process was killed with SIGKILL
dmesg: read kernel buffer failed: Operation not permitted
Я пытался погуглить, но не знаю, что означает сообщение в журнале и как его исправить. Может ли кто-нибудь сказать мне, почему процесс убивается и как его остановить?
Я использую ядро 4.9.0-6-amd64 и Debian 9
Трудно сказать точно, так как вы не даете достаточно информации. Некоторые вещи, которые вы можете попробовать:
1)dmesg
должен сообщить вам, если OOM Killer был активирован из-за нехватки общей системной памяти.
2)cat /var/log/messages
может помочь определить проблемы, связанные с процессом, вы можете попытаться отфильтровать оттуда только ошибки
Если это не какой-либо из этих 2, то это, вероятно, проблема в вашем приложении, например вызов kill
. Еще одна вещь, о которой следует упомянуть, это(справочная страница signal):
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.
Таким образом, есть большая вероятность, что это исходит из ядра из-за какого-то нарушения вашей программы.