Я хочу запустить программу на С ++, использующую потоки 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»?
Задача ещё не решена.
Других решений пока нет …