The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"sh: как отвязать дочерний процесс от родительского"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"sh: как отвязать дочерний процесс от родительского"  
Сообщение от serg3263 (ok) on 17-Мрт-07, 20:44 
Eсть:
Linux + apache + php(без fork'а) + shell-скрипт родительский + shell-скрипт дочерний

Задача:
средствами\командами shell отвязать дочерний скрипт от родительского.

Детали задачи:
1. User загружает в браузере php-страницу (web-страницу).
2. php запускает sh скрипт (родительский).
3. sh скрипт (родительский) порождает дочерний sh скрипт,
который выполняется ооооченннь дооолго (больше, чем разрешено в apache, и чем хватит терп User ждать результата).
4. User\apache закрывает\убивает php скрипт и, соотв-но, родительский sh скрипт.

5. Дочерний скрипт выполняется, и есть признак его выполнения -- файл статуса, по которому User из браузера, обратившись к php мониторит процесс.

ВОПРОС:
Как СРЕДСТВАМИ/КОМАНДАМИ shell "отвязать" дочерний sh скрипт от родительского, чтобы родительский скрипт убить, а дочерний остался выполняться?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "sh: как отвязать дочерний процесс от родительского"  
Сообщение от Serge (??) on 18-Мрт-07, 11:30 

>ВОПРОС:
>Как СРЕДСТВАМИ/КОМАНДАМИ shell "отвязать" дочерний sh скрипт от родительского, чтобы родительский скрипт
>убить, а дочерний остался выполняться?

Одна строка... man sh рекомендуется к прочтению

cat parent.sh
#!/bin/sh
nohup child.sh &


закрытие/редирект потоков добавьте сами

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "sh: как отвязать дочерний процесс от родительского"  
Сообщение от serg3263 (ok) on 19-Мрт-07, 19:02 
>
>>ВОПРОС:
>>Как СРЕДСТВАМИ/КОМАНДАМИ shell "отвязать" дочерний sh скрипт от родительского, чтобы родительский скрипт
>>убить, а дочерний остался выполняться?
>
>Одна строка... man sh рекомендуется к прочтению
>
>cat parent.sh
>#!/bin/sh
>nohup child.sh &
>
>
>закрытие/редирект потоков добавьте сами

Огромное спасибо за рекомендации,

...только  4. User\apache закрывает\убивает php скрипт и, соотв-но, родительский sh скрипт И ДОЧЕРНИЙ sh ТОЖЕ убивает.
т. к. процессы не отделены др от др. Осталась взаимосвязь процессов -- лидером группы остался родительский процесс.

Может быть Вам приходилось реализовывать fork (отделение дочернего процесса от родительского, а не только запуск процесса ф фоне) в sh | bash ?


ВОПРОС ОСТАЕТСЯ:

Как КОРРЕКТНО ОТДЕЛИТЬ дочерний процесс от родительского в sh ?
Как в процессе сменить PPID ? Что нужно сделать в окружении родителького процесса?
Интересует реализация fork и действия над PID и PPID ОБОИХ ПРОЦЕССОВ в sh.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "sh: как отвязать дочерний процесс от родительского"  
Сообщение от Serge (??) on 19-Мрт-07, 19:42 
>...только  4. User\apache закрывает\убивает php скрипт и, соотв-но, родительский sh скрипт И ДОЧЕРНИЙ sh ТОЖЕ убивает.

[serge@lx-sles tmp]$ cat ./parent.sh
#!/bin/sh

nohup /tmp/child.sh > /dev/null 2>&1 &

sleep 60;

[serge@lx-sles tmp]$ cat ./child.sh
#!/bin/bash

while [ 1 ]
do
date;
sleep 5
done

-------------------------

[serge@lx-sles tmp]$ ./parent.sh

Ctrl+c

[serge@lx-sles tmp]$ ps axf
1570 pts/5    S      0:00 /bin/bash /tmp/child.sh
1576 pts/5    S      0:00  \_ sleep 5

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру