Страница 1 из 2
запустить процес без родителя
Добавлено: 2009-04-09 18:37:33
Alex Keda
сабж. из шелл-скрипта...
а то особо одарённое приложение вызывающее скрипт понимает что есть потомок и ждёт завершения.
поэтому конструкция типа
не катит
Re: запустить процес без родителя
Добавлено: 2009-04-09 18:49:39
paradox
daemon утилита есть
но лучше расспиши подробнее
а то что то я не понял смысла
вообще sh -c "ляля фа &" есть
вроде срабатывает
Re: запустить процес без родителя
Добавлено: 2009-04-09 18:58:01
Гость
lissyara писал(а):а то особо одарённое приложение вызывающее скрипт понимает что есть потомок и ждёт завершения.
а что за приложение? я бы глянул в код этого приложения для начала
lissyara писал(а):поэтому конструкция типа
не катит
если амперсанд `&' засунуть внутрь круглых скобок `()', то родителем процесса станет init(8).
Код: Выделить всё
$ yes >/dev/null &
$ ps lp$(pgrep yes)
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
1001 2918 2917 0 107 0 4748 876 - R 6 0:07.55 yes
$ pkill yes
[1] Terminated yes >/dev/null
$ ( yes >/dev/null & )
$ ps lp$(pgrep yes)
UID PID PPID CPU PRI NI VSZ RSS MWCHAN STAT TT TIME COMMAND
1001 2923 1 0 102 0 4748 876 - R 6 0:03.77 yes
$ pkill yes
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:02:58
Alex Keda
ну, есть панель управления - ISPmanager
кое-какие вещщи там реализованы криво.
для спрямления местами можно прикрутить свои скрипты.
скрипты выполянются как web-cgi - т.е. вызываются и всё что у них есть - окружение.
есть скрипт - снимает флаги
Код: Выделить всё
srv2# more /usr/local/ispmgr/addon/unset.schg.flags.on.php.ini.sh
#!/bin/sh
home=`/usr/bin/grep ^$REMOTE_USER: /etc/passwd | /usr/bin/awk -F ':' '{print $6}'`
if [ $REQUEST_METHOD = "POST" ] 2>/dev/null
then
/bin/chflags noschg $home/php-bin 2>/dev/null &
/bin/chflags noschg $home/php-bin/php 2>/dev/null &
/bin/chflags noschg $home/php-bin/php.ini 2>/dev/null &
/bin/chflags noschg $home/php-bin/php.sh 2>/dev/null &
fi
echo '<?xml version="1.0" encoding="UTF-8"?><doc><OK/></doc>'
#sleep 60 && /usr/local/ispmgr/event/wwwdomain.edit.new &
exit 0;
srv2#
а вот который ставит их обратно - отрабатывает не всегда =((
поэтому внутри подпорка - вызов того что ставит в бэкгроунде - со слипом.
дык эта херь умная.
она ждёт пока завешиться и тот в бэкгроунде, тока потом отдаёт управление юзеру =((
думаецца - отслеживает потомков. иначе - помоему никак....
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:03:27
Alex Keda
пропиретарщина.
в код не глянешь =(((
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:06:24
paradox
думаецца - отслеживает потомков. иначе - помоему никак....
трусс надо натравить
там может быть какойто пайп
тогда ничего не поможет
иначе будет информация искажаться
если там есть общие ресурсы для данных
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:18:43
Alex Keda
так. стало интересней.
с амперсандом в скобках оно не ждёт 60 секунд.
но - окно редактирования домена выводиться пустое и в логах одно слово Error
надо разбирться что с самим скриптом происходит после использовния (&)
походу у него тоже что-то меняется - родитель или что...
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:26:09
Alex Keda
сорри. тупанул. не туда добавил скобки

))
тоже самое.
Код: Выделить всё
(sleep 60 && /usr/local/ispmgr/event/wwwdomain.edit.new &)
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:32:35
f_andrey
Я конечно не сильно специалист, но насколько имею представления, процесса без родителя быть не может, на крайняк его родителем будет считаться init(id1).
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:35:58
hizel
f_andrey писал(а):Я конечно не сильно специалист, но насколько имею представления, процесса без родителя быть не может, на крайняк его родителем будет считаться init(id1).
уел курилка :-)
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:39:04
Alex Keda
та я знаю.
мне бы эту хрень обмануть хоть как-то

))
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:44:54
paradox
трусс покажи
бинарник дай
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:47:51
f_andrey
hizel писал(а):уел курилка :-)
кыш флудер
lissyara писал(а):та я знаю.
мне бы эту хрень обмануть хоть как-то

))

а не пробовал запускать из Cи'шного приложения, сочинил бы что нибудь простенькое, чтоб оно там форкало, или еше как, тут я уж точно не спец, но думаю у тебя там кто есть рядом, ну или в книжку какой прочесть, там небось несложно должно быть, ну или вон парадокс подскажет

вдруг она не ожидает такой подлянки, и прокатит.
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:48:53
Alex Keda
трусс тяжело.
оно вызывается через такой же проприетарный модуль к апачу...
там ещё либ куча, боюсь бинарника тебе не хватит...
Re: запустить процес без родителя
Добавлено: 2009-04-09 19:51:54
zg
Re: запустить процес без родителя
эммм.... может быть вопрос можно по-другому поставить? а то затеваяется явно что-то неладное

Re: запустить процес без родителя
Добавлено: 2009-04-09 20:02:04
Гость
lissyara писал(а):есть скрипт - снимает флаги
...
а вот который ставит их обратно - отрабатывает не всегда =((
а ты их снимаешь зачем? чтобы поставить новую версию? install(1) умеет снимать флаги в процессе.
Код: Выделить всё
$ install /sbin/init /tmp
$ ls -lo /tmp/init
-rwxr-xr-x 1 root wheel schg 727944 Apr 9 20:59 /tmp/init
$ install -f noschg /sbin/init /tmp
$ ls -lo /tmp/init
-rwxr-xr-x 1 root wheel - 727944 Apr 9 20:58 /tmp/init
и не надо отдельно запускать chflags(1) перед копированием, чтобы их снять.
Re: запустить процес без родителя
Добавлено: 2009-04-09 20:05:57
ProFTP
http://forum.lissyara.su/viewtopic.php?f=14&t=16531
верхний скрипт, если часть кода надо форкнуть
отдельный скрипт, системой можно
Re: запустить процес без родителя
Добавлено: 2009-04-09 20:25:02
paradox
думаеться мне
paradox писал(а):думаецца - отслеживает потомков. иначе - помоему никак....
трусс надо натравить
там может быть какойто пайп
тогда ничего не поможет
иначе будет информация искажаться
если там есть общие ресурсы для данных
так. стало интересней.
с амперсандом в скобках оно не ждёт 60 секунд.
но - окно редактирования домена выводиться пустое и в логах одно слово Error
оно там тоже работу делает
из себя еще может или делает exec и кучу всего
например pipe
так что думаю сделать нельзя никак
там проще лицензию снять))) чем это побороть
Re: запустить процес без родителя
Добавлено: 2009-04-09 21:36:12
Alex Keda
а ты можешь?

====
впрочем - всё равно уже уплочено.
да и не так дорого у дилеров стоит хреновина - проще лицензиозную - зато с поддержкой
Re: запустить процес без родителя
Добавлено: 2009-04-09 21:38:06
paradox
могу
так все равно ж уже уплочено))))
Re: запустить процес без родителя
Добавлено: 2009-04-09 22:52:02
Alex Keda
paradox писал(а):могу
так все равно ж уже уплочено))))
если от нечего делать будешь ломать - в паблик потом не выкладывай.
некоторые проекты из-за такого загибаются

)
хотя - у них есть куда более интересные решения - например виртуальные сервера под БСД...
и код не отдали в сообщество - за это их ненавидит Энди, и ещё почему-то ненавидит БСД за лицензию которая такое позволяет

))
Re: запустить процес без родителя
Добавлено: 2009-04-09 22:55:32
paradox
я от нефиг делать не ламаю)))
к томуже я не думаю что там токо одна утилиты испменеджер
там еще куча всего что тоже проверяет лицензию
если бы не лицензия бсд
то испменеджер бы зафигачили на линухе))
кому от этого лучше или хуже еще вопрос....
Re: запустить процес без родителя
Добавлено: 2009-04-09 23:02:32
ProFTP
мастеры - ломастеры

Re: запустить процес без родителя
Добавлено: 2009-04-09 23:07:42
Alex Keda
paradox писал(а):я от нефиг делать не ламаю)))
к томуже я не думаю что там токо одна утилиты испменеджер
там еще куча всего что тоже проверяет лицензию
если бы не лицензия бсд
то испменеджер бы зафигачили на линухе))
кому от этого лучше или хуже еще вопрос....
он есть под линух.
но родной - именно под БСД
Re: запустить процес без родителя
Добавлено: 2009-04-09 23:12:58
ProFTP
та там прогарммка пустая, единственное там патчи VDS и какая-то вень для SMP от FreBSD, а написать там можно ничего сложного, но только никто не хочет писать, все бездельники

, вот как раз и платную сделали
