- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
if( str.substring(0,3).equals("110")){
//restarting client
c.close();
Thread.sleep(100);
main(args);
System.gc();
System.exit(1);
}
KoderZ 08.12.2010 11:51 # −1
Lure Of Chaos 08.12.2010 15:42 # −1
maltozzi 08.12.2010 23:58 # 0
Lure Of Chaos 09.12.2010 00:08 # 0
maltozzi 09.12.2010 00:15 # 0
Lure Of Chaos 09.12.2010 10:42 # 0
а вообще рестарт реализуется так:
1. нужен бутстраппер, пусть даже примитивный батник, но лучше на сях каких
2. делаем корректно выход (не убиваем всю виртуальную машину exit'ом), то есть грамотно дожидаемся завершения всех потоков, пишем наружу что хотим не выход а рестарт
3. бутстраппер ждет завершения явы, и смотрит выход, и если от явапроги пришло желание еще раз запуститься, запускает еще раз, если нет, умирает сам
Анонимус 09.12.2010 16:52 # 0
а вообще да -- ничто не мешает запустить процес
дождаться кода возврата
и если он не нулевой -- перезапустить процесс
я такой бутстраппер-батник сделать могу))
Lure Of Chaos 09.12.2010 17:30 # 0
батники очень полезны в качестве запускалок-по-двойному-щелчку, недостатка два:
1.тока в выньде
2.пока ява жива, видна черная консоль, только мешающая юзверам, сбивающая с толку и искушающая нажать на правый верхний крест.
Анонимус 09.12.2010 17:33 # +1
2) cmd /C javaw же
Dummy00001 08.12.2010 17:21 # −1
Анонимус 08.12.2010 19:52 # −1
Его программа sendmail запускала сама себя для разных задач, за что и была признана говнокодской)
Dummy00001 08.12.2010 20:04 # 0
да и сендмэйл как бы говно не потому что форкается (на *нихах это ОК) а потому что у него конфиг файл который вошел в историю как самая большая ошибка программирования. (и нет, виндам до славы кошмаров настраивания сендмыл.сф еще далеко.)
Анонимус 08.12.2010 20:24 # −1
.cf файлы руками обычно не правят (хотя с ориелливской книжкой впринципе это возможно), хотя и .mc файлы не очень-то прозрачны для понимания))
Dummy00001 08.12.2010 20:31 # −1
это ничего не меняет. если программа уже есть в памяти, то с диска почти ничего читаться не будет - будут использоваться уже загруженые сегменты. если линух под рукой есть, сделай в шеле `cat /proc/$$/maps` для примера.
Анонимус 08.12.2010 20:35 # −1
Dummy00001 08.12.2010 20:36 # −1
Анонимус 08.12.2010 21:26 # −1
значит мысль иметь один бинарник не так уж и плоха.
правда это умильно выглядет при портировании
что-то подсказывает мне, что не все платформы ведут себя точно так же.
bugmenot 08.12.2010 23:07 # −1
eth0 08.12.2010 21:04 # −1
Анонимус 08.12.2010 21:25 # −1
eth0 09.12.2010 22:05 # 0
bugmenot 09.12.2010 22:53 # −2