LINUX.ORG.RU

fork() + setsid() в жабке

 ,


0

1

Собственно, сабж. Гугль отсылает в разные обертки. Нативно из кода это вообще реально? Даже пых так умеет, не говоря уже о питонах, рубях и перлах.

А костыли вида >&- & юзать не хочу.

Тут поковырял адаптековский StorMan, они ухитряются запуститься так:

$JAVA_BIN/java -Djava.compiler=NONE -cp $INSTDIR/RaidMan.jar com.ibm.sysmgt.raidmgr.agent.ManagementAgent $*

Правда, у них там нет setsid(), т.к.:

root      4188  2.8  0.8 4627080 147256 ?      Sl   May03 1870:01 ./jre/bin/java -Djava.compiler=NONE -cp /usr/StorMan/RaidMan.jar com.ibm.sysmgt.raidmgr.agent.ManagementAgent

★★

Последнее исправление: GateKeeper (всего исправлений: 1)

Жабка, ты что хочешь учудить-то? В Java нет fork() т.к. это ненужная трудно отлажваемая хрень.

Может объяснишь, какого эффекты ты хочешь достичь?

andreykyz ★★
()
Ответ на: комментарий от andreykyz

man fork(), man setsid()

На пальцах: отвязанный от терминала процесс с ppid == 1. По-русски: служба, демон (daemon). В сях, похапе, питоне, рубях и т.д. это делается практически без особых различий. И ведь, сволочи, могли бы хоть к VM приделать какой-нибудь ключик для такой хреньки, раз уж огородили эту VM от управляемого кода.

GateKeeper ★★
() автор топика
Ответ на: комментарий от hizel

Варианты всегда есть. Надо будет вспомнить Daemon::Generic, что ли. Правда, в этом случае не будет нормальной IDE и об язык можно пальцы сломать, но за неимением лучшего...

GateKeeper ★★
() автор топика
Ответ на: комментарий от hizel

Дело в том, что, когда я пишу демонизацию сам, я сам же пишу обработчики сигналов. В обертках такого раздолья не получится, поскольку для JVM они вообще внешняя сущность, между ними и кодом нет никакой коммуникации. В Daemon::Generic, хоть он и обертка, можно извернуться и таки повесить свои собственные обработчики сигналов.

GateKeeper ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.