запустить процес без родителя

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 18:37:33

сабж. из шелл-скрипта...
а то особо одарённое приложение вызывающее скрипт понимает что есть потомок и ждёт завершения.
поэтому конструкция типа

Код: Выделить всё

sleep 60 && /path/to/programm &
не катит
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 18:49:39

daemon утилита есть
но лучше расспиши подробнее
а то что то я не понял смысла

вообще sh -c "ляля фа &" есть
вроде срабатывает

Гость
проходил мимо

Re: запустить процес без родителя

Непрочитанное сообщение Гость » 2009-04-09 18:58:01

lissyara писал(а):а то особо одарённое приложение вызывающее скрипт понимает что есть потомок и ждёт завершения.
а что за приложение? я бы глянул в код этого приложения для начала
lissyara писал(а):поэтому конструкция типа

Код: Выделить всё

sleep 60 && /path/to/programm &
не катит
если амперсанд `&' засунуть внутрь круглых скобок `()', то родителем процесса станет 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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:02:58

ну, есть панель управления - 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#   
а вот который ставит их обратно - отрабатывает не всегда =((
поэтому внутри подпорка - вызов того что ставит в бэкгроунде - со слипом.
дык эта херь умная.
она ждёт пока завешиться и тот в бэкгроунде, тока потом отдаёт управление юзеру =((
думаецца - отслеживает потомков. иначе - помоему никак....
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:03:27

пропиретарщина.
в код не глянешь =(((
Убей их всех! Бог потом рассортирует...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 19:06:24

думаецца - отслеживает потомков. иначе - помоему никак....
трусс надо натравить
там может быть какойто пайп
тогда ничего не поможет
иначе будет информация искажаться
если там есть общие ресурсы для данных

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:18:43

так. стало интересней.
с амперсандом в скобках оно не ждёт 60 секунд.
но - окно редактирования домена выводиться пустое и в логах одно слово Error
надо разбирться что с самим скриптом происходит после использовния (&)
походу у него тоже что-то меняется - родитель или что...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:26:09

сорри. тупанул. не туда добавил скобки =)))
тоже самое.

Код: Выделить всё

(sleep 60 && /usr/local/ispmgr/event/wwwdomain.edit.new &)
Убей их всех! Бог потом рассортирует...

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение f_andrey » 2009-04-09 19:32:35

Я конечно не сильно специалист, но насколько имею представления, процесса без родителя быть не может, на крайняк его родителем будет считаться init(id1).
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: запустить процес без родителя

Непрочитанное сообщение hizel » 2009-04-09 19:35:58

f_andrey писал(а):Я конечно не сильно специалист, но насколько имею представления, процесса без родителя быть не может, на крайняк его родителем будет считаться init(id1).
уел курилка :-)
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:39:04

та я знаю.
мне бы эту хрень обмануть хоть как-то =)))
Убей их всех! Бог потом рассортирует...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 19:44:54

трусс покажи
бинарник дай

Аватара пользователя
f_andrey
майор
Сообщения: 2651
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение f_andrey » 2009-04-09 19:47:51

hizel писал(а):уел курилка :-)
кыш флудер :-o
lissyara писал(а):та я знаю.
мне бы эту хрень обмануть хоть как-то =)))
:) а не пробовал запускать из Cи'шного приложения, сочинил бы что нибудь простенькое, чтоб оно там форкало, или еше как, тут я уж точно не спец, но думаю у тебя там кто есть рядом, ну или в книжку какой прочесть, там небось несложно должно быть, ну или вон парадокс подскажет :) вдруг она не ожидает такой подлянки, и прокатит.
Если ваша тема перенесена, то смотри http://forum.lissyara.su/viewtopic.php?f=1&t=32308

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 19:48:53

Код: Выделить всё

~paradox/ispmanager/ispmgr
трусс тяжело.
оно вызывается через такой же проприетарный модуль к апачу...
там ещё либ куча, боюсь бинарника тебе не хватит...
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: запустить процес без родителя

Непрочитанное сообщение zg » 2009-04-09 19:51:54

Re: запустить процес без родителя
эммм.... может быть вопрос можно по-другому поставить? а то затеваяется явно что-то неладное :smile:

Гость
проходил мимо

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) перед копированием, чтобы их снять.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение ProFTP » 2009-04-09 20:05:57

http://forum.lissyara.su/viewtopic.php?f=14&t=16531

верхний скрипт, если часть кода надо форкнуть

отдельный скрипт, системой можно

Код: Выделить всё

./df > /dev/null &
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 20:25:02

думаеться мне
paradox писал(а):
думаецца - отслеживает потомков. иначе - помоему никак....
трусс надо натравить
там может быть какойто пайп
тогда ничего не поможет
иначе будет информация искажаться
если там есть общие ресурсы для данных
так. стало интересней.
с амперсандом в скобках оно не ждёт 60 секунд.
но - окно редактирования домена выводиться пустое и в логах одно слово Error
оно там тоже работу делает
из себя еще может или делает exec и кучу всего
например pipe
так что думаю сделать нельзя никак

там проще лицензию снять))) чем это побороть

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 21:36:12

а ты можешь? =)
====
впрочем - всё равно уже уплочено.
да и не так дорого у дилеров стоит хреновина - проще лицензиозную - зато с поддержкой
Убей их всех! Бог потом рассортирует...

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 21:38:06

могу
так все равно ж уже уплочено))))

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 22:52:02

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

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: запустить процес без родителя

Непрочитанное сообщение paradox » 2009-04-09 22:55:32

я от нефиг делать не ламаю)))
к томуже я не думаю что там токо одна утилиты испменеджер
там еще куча всего что тоже проверяет лицензию

если бы не лицензия бсд
то испменеджер бы зафигачили на линухе))
кому от этого лучше или хуже еще вопрос....

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение ProFTP » 2009-04-09 23:02:32

мастеры - ломастеры :ROFL:
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение Alex Keda » 2009-04-09 23:07:42

paradox писал(а):я от нефиг делать не ламаю)))
к томуже я не думаю что там токо одна утилиты испменеджер
там еще куча всего что тоже проверяет лицензию

если бы не лицензия бсд
то испменеджер бы зафигачили на линухе))
кому от этого лучше или хуже еще вопрос....
он есть под линух.
но родной - именно под БСД
Убей их всех! Бог потом рассортирует...

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: запустить процес без родителя

Непрочитанное сообщение ProFTP » 2009-04-09 23:12:58

та там прогарммка пустая, единственное там патчи VDS и какая-то вень для SMP от FreBSD, а написать там можно ничего сложного, но только никто не хочет писать, все бездельники :smile: , вот как раз и платную сделали :(
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение