URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9969
[ Назад ]

Исходное сообщение
"Поймать и определить сигнал"

Отправлено datswd , 01-Фев-15 18:04 
Добрый здравствуйте.

Apache запускает приложение, которое обрабатывает stdin (загрузка файла). Если соединение прерывается (происходит разрыв :)), приложение закрывается автоматически apach`ем.
Какой при этом срабатывает сигнал?
SIGINT SIGQUIT SIGKILL попробовал. Вроде не они (3% что косяк в самой проверке).

Так вот из первого вопроса проистекает главный вопрос.
Каким образом можно посмотреть каким именно сигналом происходит это закрытие.

Брутфорсить не хочется. Их там штук 30.


Содержание

Сообщения в этом обсуждении
"Поймать и определить сигнал"
Отправлено Alex_S , 02-Фев-15 03:06 
> Добрый здравствуйте.
> Так вот из первого вопроса проистекает главный вопрос.
> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.

strace не поможет ?
  или core dump ?


"Поймать и определить сигнал"
Отправлено NoiseBringer , 02-Фев-15 09:08 
>> Добрый здравствуйте.
>> Так вот из первого вопроса проистекает главный вопрос.
>> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
>  strace не поможет ?
>   или core dump ?

Спасибо!

Этот вопрос задавался для того чтобы решить проблему с файлами, которые не были до конца загружены из-за прерывания соединения.
Один из вариантов, это в приложении, которое записывает файл, ловить сигнал о досрочном завершении и, не отходя от кассы, удалять незавершенный файл.
Красиво. Но для этого нужно разбираться с strace и прочими утилитами.

В то же время есть вариант номер два. Раз в час запускать приложение, которое удаляет все файлы из нужной директории, у которых время последнего изменения больше десяти минут.
Не так красиво, но зато просто до упора :)


"Поймать и определить сигнал"
Отправлено NoiseBringer , 02-Фев-15 09:32 
>> Добрый здравствуйте.
>> Так вот из первого вопроса проистекает главный вопрос.
>> Каким образом можно посмотреть каким именно сигналом происходит это закрытие.
>  strace не поможет ?
>   или core dump ?

Ай спасибо!
Всё оказалось проще чем я думал.

ps -ax | grep {приложение}

С помощью этой команды вясняем PID нашего приложения

strace -p PID

С помощью этой мониторим чем оно занимается.

Возможно понадобится изменить параметр kernel.yama.ptrace_scope в файле /etc/sysctl.d/10-ptrace.conf с 1 на 0;

Оказалось что Apache в этом случае посылает SIGKILL.