Добрый здравствуйте.Apache запускает приложение, которое обрабатывает stdin (загрузка файла). Если соединение прерывается (происходит разрыв :)), приложение закрывается автоматически apach`ем.
Какой при этом срабатывает сигнал?
SIGINT SIGQUIT SIGKILL попробовал. Вроде не они (3% что косяк в самой проверке).Так вот из первого вопроса проистекает главный вопрос.
Каким образом можно посмотреть каким именно сигналом происходит это закрытие.Брутфорсить не хочется. Их там штук 30.
> Добрый здравствуйте.
> Так вот из первого вопроса проистекает главный вопрос.
> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.strace не поможет ?
или core dump ?
>> Добрый здравствуйте.
>> Так вот из первого вопроса проистекает главный вопрос.
>> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
> strace не поможет ?
> или core dump ?Спасибо!
Этот вопрос задавался для того чтобы решить проблему с файлами, которые не были до конца загружены из-за прерывания соединения.
Один из вариантов, это в приложении, которое записывает файл, ловить сигнал о досрочном завершении и, не отходя от кассы, удалять незавершенный файл.
Красиво. Но для этого нужно разбираться с strace и прочими утилитами.В то же время есть вариант номер два. Раз в час запускать приложение, которое удаляет все файлы из нужной директории, у которых время последнего изменения больше десяти минут.
Не так красиво, но зато просто до упора :)
>> Добрый здравствуйте.
>> Так вот из первого вопроса проистекает главный вопрос.
>> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
> strace не поможет ?
> или core dump ?Ай спасибо!
Всё оказалось проще чем я думал.ps -ax | grep {приложение}
С помощью этой команды вясняем PID нашего приложения
strace -p PID
С помощью этой мониторим чем оно занимается.
Возможно понадобится изменить параметр kernel.yama.ptrace_scope в файле /etc/sysctl.d/10-ptrace.conf с 1 на 0;
Оказалось что Apache в этом случае посылает SIGKILL.