Фантомное уничтожение процесса

На основе информации в этом выдающемся билете запроса новых функций PECL для APC, о совместном использовании данных кэша и блокировок между несколькими FCGI обрабатывает в той же httpd среде, я сказал бы, что также не возможно сделать между несколькими httpd средами.

Редактирование для добавления:

Вы все еще получили бы некоторое преимущество от использования APC. Начальные результаты после демонов вращались, не могло бы быть большим, но со временем кэш для каждого процесса будет становиться отобранным и снова использованным. кэш-память и APC выполняют подобные функции в как таковом они "информация о кэше", но их фактические цели очень отличаются. кэш-память является кэшем значения ключа для данных, и APC является кэшем кода операции для кода.

1
задан 3 February 2011 в 20:02
2 ответа

Процессы могут получать некоторый сигнал, который заставляет их выходить, возможно из-за неисправного оборудования (например, плохая память может вызвать segfaults). Если Вы не видите ничего, что syslog/dmesg пытаются включить дампам ядра. Можно затем работать gdb на них для понимания, что происходит.

0
ответ дан 4 December 2019 в 01:45

Запуск моего приложения Java с

strace -tt -o strace.out <java command>

Показал, что это отправлялось команду SIGHUP, которая уничтожала его. Оказывается этим, хотя я устанавливал процесс для выполнения в фоновом режиме (путем добавления & к команде), команда все еще связывается с тем, какой бы ни поток создал ее.

Это означало, что, для команд, выполняемых апачем, они будут уничтожены каждый раз, когда рабочий поток, который создал их, был переработан, и, для команд, выполняемых вручную, они были уничтожены каждый раз, когда я вышел из системы.

Я исправил это путем простого предварительного ожидания nohup к команде, т.е.

nohup java -jar /path/to/my/java.jar arguments &
1
ответ дан 4 December 2019 в 01:45

Теги

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