Запуск и остановка демона, содержащего потоки ядра
Я хочу запустить программу на С ++, использующую потоки POSIX в openSUSE 12 в качестве демона, и иметь возможность запускать, останавливать и перезапускать ее как службу с помощью обычного сценария init.d на основе этого шаблона: http://www.novell.com/coolsolutions/feature/15380.html.
Однако оказывается, что startproc и killproc не подходят для работы с потоками ядра (что, очевидно, и есть потоки POSIX). Мне удается запустить программу с помощью startproc, но она не распознается и не уничтожается killproc. Rc_status возвращает красный "ошибка" при запуске startproc, даже если программа на самом деле запущена, и возвращает зеленый "сделано" при запуске killproc, даже если он не убивает процесс.
Есть ли альтернатива использованию startproc/killproc в openSUSE 12? Если запустить сервис с простого nohup, как он обычно останавливается? Просто убивая это? Что в таком случае является хорошим способом получения pid, необходимого для "kill"?