Позволяет говорят, что у меня есть процесс, который имеет идентификатор 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
"может быть сделан. Надежда можно помочь.спасибо.
Если это - одноразовая вещь, вот использование техники gdb
присоединить к рабочему процессу:
Запустите программу программы. Мы будем изменяться sleep
sid.
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
теперь лидер группы процесса ее собственной сессии.