Породите процесс в Java, который переживает завершение работы JVM

Просто удалите эту строку из CSS:

.form .register-form {
  display: none;
}

И добавьте это:

.form .login-form {
  display: none;
}

Вы можете увидеть результат в этой скрипке: http://jsfiddle.net/nyL7xq6f/

13
задан 17 November 2008 в 14:51
поделиться

5 ответов

Если Вы порождаете использование процесса java.lang.Process это должно "просто работать" - я не полагаю, что порожденный процесс умрет, когда JVM выйдет. Вы могли бы найти, что библиотеки Ant помогают Вам управлять порождением все же.

17
ответ дан 1 December 2019 в 22:24
поделиться

Я думал, что смысл Java был то, что он полностью содержится в JVM. Довольно трудно выполнить байт-код, когда нет никакого времени выполнения.

Если Вы надеетесь иметь полностью отдельный процесс, Вы могли бы изучить попытку запустить второй экземпляр java.exe. Хотя для Вашего приложения, могло бы быть легче просто сделать синхронизируемый блок, который останавливается (но не уничтожает), Ваше приложение, делает обновление и затем повторно инициализирует данные Вашего приложения.

-1
ответ дан 1 December 2019 в 22:24
поделиться

Это действительно на самом деле "просто работает", если Вы не пытаетесь быть умными.

Мой перенесенный java.lang. Процесс пытался получить вывод сценария, поэтому когда JVM умерла, сценарий никуда не должен был отправлять вывод, таким образом, это просто умирает. Если я не пытаюсь получить вывод, или сценарий не генерирует никого или перенаправляет все в файл или/dev/null, все работает, как он должен.

10
ответ дан 1 December 2019 в 22:24
поделиться

При рассмотрении создания updater на Linux Вы, вероятно, рявкаете неправильное дерево. Я полагаю, что всем главным дистрибутивам Linux встроили диспетчер пакетов. Необходимо использовать диспетчер пакетов, чтобы сделать обновление. Ничто не расстраивает меня больше, чем программы та попытка самообновить... (Я смотрю на Вас, Eclipse),

-5
ответ дан 1 December 2019 в 22:24
поделиться

It won't always "just work". When JVM spawns the child and then shuts down, the child process will also shutdown in some cases. That is expected behaviour of the process. Under WIN32 systems, it just works.

E.g. If WebLogic server was started up by a Java process, and then that process exits, it also sends the shutdown signal to the WebLogic via shutdown hook in JVM, which causes WebLogic to also shutdown.

If it "just works" for you then there is no problem, however if you find yourself in a position that child process also shutsdown with JVM it is worth having a look at the "nohup" command. The process won't respond to SIGTERM signal, but will respond to SIGKILL signal, as well as normal operations.

Update: The way described above is a bit of an overkill. Another way of doing this would be to use "&" on the end of command. This will spawn a new process that is not a child of current java process.

P.S. Sorry for so many updates, I have been learning and trying it from scratch.

-1
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: