Обеспечить поддержку сессий для менеджера процессов
#include <sys/procmgr.h>
int procmgr_session( uint32_t nd,
pid_t sid,
int id,
unsigned event);
- nd
- Дескриптор узла.
- sid
- Идентификатор сессии.
- id
- Дескриптор файла, группа процессов или сигнал, в зависимости от типа события.
- event
- Одно из событий:
- PROCMGR_SESSION_TCSETSID
- PROCMGR_SESSION_SETSID
- PROCMGR_SESSION_SETPGRP
- PROCMGR_SESSION_SIGNAL_PID
- PROCMGR_SESSION_SIGNAL_PGRP
- PROCMGR_SESSION_SIGNAL_LEADER
Интерпретация аргументов зависит от события.
libc
Функция procmgr_session() обеспечивает поддержку сессий к терминалам символьных устройств на уровне менеджеров ресурсов, библиотечных функциях C и приложениях управления сессиями.
Аргументы функции должны соответствовать выбранному событию:
- PROCMGR_SESSION_TCSETSID
- Используется функцией tcsetsid() для установки дескриптора файла id в качестве управляющего терминала сессии, возглавляемой лидером сессии sid.
- PROCMGR_SESSION_SETSID
- Используется функцией setsid() для создания новой сессии, в которой вызывающий процесс становится лидером сессии. ПРи этом аргументы sid и id должны быть равны
0
. - PROCMGR_SESSION_SETPGRP
- Используется менеджером ресурсов символьных устройств для изменения группы процессов по запросу клиента, вызывающего функцию tcsetpgrp(). Аргумент sid должен представлять текущую сессию клиента, аргумент id — его новую целевую группу процессов.
- PROCMGR_SESSION_SIGNAL_PID
- PROCMGR_SESSION_SIGNAL_PGRP
- PROCMGR_SESSION_SIGNAL_LEADER
- Все эти 3 вида событий используются менеджером ресурсов символьного устройства для сброса сигнала типа id (обычно сигнал управления терминалом/заданием) у соответствующего члене сессии, указанного в sid.
- 0
- Успешное завершение.
- -1
- Возникла ошибка.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
setsid(), tcsetpgrp(), tcsetsid()
Предыдущий раздел: Описание API системной библиотеки