2016-03-07 6 views
2

Например, если я заставляю контейнер, чтобы остановить с kill, затем docker-compose ps проверить свои контейнеры, я получаю государству как Exit 137. И с docker-compose stop Я получаю Exit 1/Exit 0Значение кода выхода из команды докеры?

Как нет документации для кода выхода, может ли кто-нибудь объяснить мне смысл этого?

ответ

3

Это связано не столько с докером, сколько с системой, в которой он работает. Если вы посмотрите в этой таблице reserved exit codes для Баша, вы можете увидеть строку:

128+n Fatal error signal "n" kill -9 $PPID of script $? returns 137 (128 + 9) 

что соответствует 137 вы упоминаете. Это 128 + 9 (SIGKILL), которые вы можете увидеть на странице signal(7). Обычно 0 означает чистый выход и 1 что-то не так, этих двух может быть достаточно для программиста. Они могут варьироваться от 1-255, включая зарезервированные, упомянутые выше.

Это всего лишь короткий ответ, поскольку я не эксперт по этому вопросу, вы можете найти более подробную информацию об этой теме unix.stackexchange на default exit code when process is terminated или, возможно, кто-то здесь может дать гораздо более сложный ответ, чем мой.

+0

спасибо за предложение :) я получаю все, что мне нужно сейчас – itsjef

+0

хорошего объяснения, –

2

Возможно, у вас может быть нехватка памяти. Это стандартный Linux, как упомянуто здесь: http://tldp.org/LDP/abs/html/exitcodes.html


Код ошибки : Недопустимый аргумент для выхода


Код ошибки 128 + п: Fatal сигнал ошибки "п" убить -9 $ PPID скрипта $? возвращает 137 (128 + 9)


Ошибка 137 в Докер означает, что контейнер был «KILL'ed на„ООМ-убийцы“(Недостаточно памяти). Это происходит, когда в контейнере недостаточно памяти для запуска процесса.

«OOM killer» - это проактивный процесс, который перескакивает, чтобы сохранить систему, когда уровень ее памяти слишком низкий, путем уничтожения процессов злоупотребления ресурсами для освобождения памяти для системы.

Вот a little more info