Служба Linux и источник для работы cron - PullRequest
0 голосов
/ 27 апреля 2010

Я новичок в Linux и пишу сервис на C ++, который порождает несколько потоков, и я запускаю сервис, вызывая его из init.d, но как мне отправить сигнал завершения в мое приложение из скрипта, чтобы служба завершает все потоки и завершает работу.

А также, где я могу найти исходный код для любых служб Linux. например /etc.init.d/rc5.d/S14cron. Это поможет понять, как реализовать сервис.

Ответы [ 2 ]

1 голос
/ 28 апреля 2010

Зависит от того, что делает ваше приложение.

Лично я бы оставил поток только для обработки сигналов и вызвал бы sigprocmask в других потоках, чтобы остановить доставку сигналов к ним.

Основной поток / поток обработки сигналов (обычно рекомендуется сделать это основным потоком) может затем отправить сообщение своим потокам, чтобы сказать им завершить то, что они делают, и выйти.

В качестве альтернативы, если вам нравится принцип «только для сбоя», вы можете просто вызвать exit_group и покончить с этим:)

1 голос
/ 27 апреля 2010

Классическим справочником для такого рода вопросов является «Расширенное программирование в среде UNIX» Стивена. Вы можете найти исходный код этого учебника здесь .

...