Сессия процесса изменения

Позволяет говорят, что у меня есть процесс, который имеет идентификатор 10030 сессии, Есть ли какой-либо способ удалить текущий процесс из этой сессии и присвоить его другому? Или, по крайней мере, удалите из этой сессии? Я считал это:
The session's ID is the same as the pid of the process that created the session through the setsid() system call. That process is known as the session leader for that session group. All of that process's descendants are then members of that session unless they specifically remove themselves from it.

Но к сожалению я не мог найденный как"they specifically remove themselves from it"может быть сделан. Надежда можно помочь.спасибо.

1
задан 27 June 2017 в 16:16

1 ответ

Если это - одноразовая вещь, вот использование техники gdb присоединить к рабочему процессу:

Запустите программу программы. Мы будем изменяться sleepsid.

spectras@etherbee:~$ (echo;sleep 86400)&
[1] 23340

Вот наш sleep процесс:

spectras@etherbee:~$ ps -efj -q 23342
UID        PID  PPID  PGID   SID  C STIME TTY          TIME CMD
spectras 23342 23340 23340 22112  0 14:50 pts/5    00:00:00 sleep 86400

Давайте присоединим к нему использование gdb. Обратите внимание, что это приостановит процесс.

spectras@etherbee:~$ gdb -p 23342
[lots of irrelevant text]
Attaching to process 23342
[more irrelevant text]

(gdb) p setsid()
$1 = 23342
(gdb) q
A debugging session is active.

        Inferior 1 [process 23342] will be detached.

Quit anyway? (y or n) y
Detaching from program: /bin/sleep, process 23342

Давайте посмотрим результат:

spectras@etherbee:~$ ps -efj -q 23342
UID        PID  PPID  PGID   SID  C STIME TTY          TIME CMD
spectras 23342 23340 23342 23342  0 14:50 ?        00:00:00 sleep 86400

Наш sleep теперь лидер группы процесса ее собственной сессии.

0
ответ дан 8 December 2019 в 04:52

Другие вопросы по тегам:

Похожие вопросы: