Является ли Java Process
, который был создан с помощью Runtime.exec
, убитого, когда время выполнения, которое создало процесс, погибло? Или я должен убить их вручную, например. путем установки крюка отключения и уничтожения всех оставшихся процессов через Process.destroy
. Javadoc только говорит о том, что происходит, когда среда исполнения продолжает существовать.Срок службы процесса Runtime.exec
3
A
ответ
3
Java Process
создан как подпроцесс JVM. Все операционные системы, которые я знаю о подпроцессах kill, когда родительский процесс завершается.
Однако, если процесс, который вы создаете, создает свои собственные процессы, которые не являются его дочерними процессами (или отделяются, например, в случае приложений Windows GUI), они могут продолжать работу после завершения JVM. Существует проблема, которая может быть связана с описанным in this question.
Смежные вопросы
- 1. Срок службы процесса ios
- 2. Срок службы процесса, породившего поток
- 3. Срок службы сервера ATL
- 4. Срок службы PID в окнах
- 5. Срок службы экземпляра службы WCF?
- 6. Срок службы службы обратного отсчета
- 7. Имеет ли гибкий срок службы долго ожидаемый срок службы
- 8. Как определить срок службы приложения ASP.NET Срок службы
- 9. Срок службы идентификатора AppWidget
- 10. ZeroMQ - Срок службы соединений?
- 11. Срок службы объектов Lucene.net?
- 12. Срок службы фрагмента
- 13. Срок службы переменных JavaScript
- 14. Срок службы идентификатора GCM?
- 15. Срок службы SQL-соединения
- 16. COM объект Срок службы
- 17. Максимальный срок службы коммутаторов?
- 18. Срок службы батареи
- 19. Срок службы разъема?
- 20. Срок службы лямбда захватывает
- 21. Срок службы объектов Qt
- 22. Срок службы rvalue ref
- 23. Срок службы временных рядов
- 24. Firebase.resetPassword() срок службы пароля
- 25. Срок службы TCP-соединения
- 26. Срок службы Singleton Class
- 27. продлить срок службы временных
- 28. Срок службы сеанса
- 29. Переменный срок службы
- 30. Срок службы соединения mysql_connect
Он говорит о объекте Process, созданном с помощью Runtime.exec, который действительно является отдельным процессом. –
Подпроцессы * являются * отдельными процессами. Насколько я понимаю http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html, любой «процесс», независимо от того, как он был создан, представляет собой подпроцесс процесса создания. Фактически это необходимо для доступа к входным и выходным потокам нового процесса. Проверьте дерево процессов в вашем любимом диспетчере задач, вы увидите, что JVM является родительским процессом. –
+1, хороший ответ. Я должен сам это вспомнить. –