LINUX.ORG.RU

Демон и писанина в stdout


0

0

Дело такое: много одинаковых демонов, exec()'ающих пользовательские процессы. Демоны форкаются из текущей сессии и из любых других сессий. Мне необходим легкий механизм диффиренсации штанов по цвету, а именно: каждому демону необходимо каким-то образом отдать свой PID, чтобы потом любой простецкий скрипт его с удовольствием схавал. Сохранение, в /var/run/mypid не подойдет, поскольку демонов-то много. Так вот, кошерно ли будет каждому демону написать в свой stdout свой PID? А то я ничего не придумал пока.

anonymous

Сформулируй вопрос как-нибудь иначе.

Что мешает создавать файлы /var/run/mypid.<pid>?

anonymous
()
Ответ на: комментарий от anonymous

Итак: 1. демоны mydaemon запускают при помощи exec() пользовательские внешние процессы, писаные не мною. 2. Демонов mydaemon каждый пользователь может пускать кучу. Последовательно, одновременно, в разных сессиях и т.д. 3. Есть тулза mytool которую юзер может асинхронно запускать для того, чтобы мониторить СВОИ и только свои процессы. Задача: как сделать джоб-контрол, такой, чтобы пользователь при помощи mytool смог среди своих процессов (запущенных mydaemon) определить процессы относящиеся к каждой конкретной копии mydaemon.

anonymous
()
Ответ на: комментарий от anonymous

>Задача: как сделать джоб-контрол, такой, чтобы пользователь при помощи mytool смог среди своих процессов (запущенных mydaemon) определить процессы относящиеся к каждой конкретной копии mydaemon.

если запущенный via exec() процесс решит превратится в демона - то ты за ним уже никак не уследиш.

тоже касается setsid():ты никак не сможешь отслеживать потомков такого процесса

для всех остальных случаев: при создании нового процесса тебе возвращается его pid вот на него и опирайся.

ps: может сможешь извлечь какуюто пользу от ptrace?????

cvv ★★★★★
()
Ответ на: комментарий от cvv

Попробуй использовать разделяемую системную память. Смотри ipc - процедуры. (smget, shmat...) Разделяемая память выделяется для ЛЮБОГО процесса, который обращается к ней. Здесь нет никакой зависимости от родителей или кого еще.

anonymous
()

Ладно, будем думать. Спасибо!

anonymous
()

Идея с форком должна тебе помочь, каждей демон знает (зранит в массиве) значения pid своих потомков, если еще должен быть и общий доступ всех демонов одного пользователя то испозьзуй шареную памаять shmget() и smhat().

stalcker
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.