Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать так, чтобы...

9.8K
06 июля 2005 года
TFluid
15 / / 05.07.2005
чтобы экзэшник после запуска не занимал свой файл на диске... ну чтобы программу после запуска можно было бы свободно удалить? А то есть программка, которую все запускают по сетке, чтобы ее обновить приходится всех от нее отцеплять...
585
06 июля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by TFluid
чтобы экзэшник после запуска не занимал свой файл на диске... ну чтобы программу после запуска можно было бы свободно удалить? А то есть программка, которую все запускают по сетке, чтобы ее обновить приходится всех от нее отцеплять...


Ну, брат, ты фокусник...

9.8K
06 июля 2005 года
TFluid
15 / / 05.07.2005
Цитата:
Originally posted by honeybeer
Ну, брат, ты фокусник...



Ну а что? Вот допустим ее запустило 20 человек, я спокойно захожу на сервер и всех от нее отрубаю. Причем программка не обращается к своему телу больше и продолжает нормально работать, ибо незачем ей себя блокировать, запустилась и хватит... неужели такое не возможно?

585
06 июля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by TFluid
Ну а что? Вот допустим ее запустило 20 человек, я спокойно захожу на сервер и всех от нее отрубаю. Причем программка не обращается к своему телу больше и продолжает нормально работать, ибо незачем ей себя блокировать, запустилась и хватит... неужели такое не возможно?



Ох, сомнения меня одолевают. Каким образом реализована работа с клиентскими машинами. Каждый пользователь запускает локальный процесс? Или процесс серверный, клиенты только подключаются?

310
06 июля 2005 года
fellow
853 / / 17.03.2003
Нет никаких проблем.
Программа стартует, видит, что она запущена в первом экземпляре, копирует свой файл в другой, запускает свою копию из этого файла, ждёт её старта и завершается.
Вторая копия видит, что она вторая, и всех этих действий не выполняет.
Никакого шаманства.
585
06 июля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by fellow
Нет никаких проблем.
Программа стартует, видит, что она запущена в первом экземпляре, копирует свой файл в другой, запускает свою копию из этого файла, ждёт её старта и завершается.
Вторая копия видит, что она вторая, и всех этих действий не выполняет.
Никакого шаманства.



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

310
06 июля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by honeybeer
А теперь следующий поворот событий. Программа создала свою копию во временной директории на сервере, запустила вторичный процесс и вырубила первичный все подключенные клиенты должны провести реконнект - иначе отлуп. Если процесс создается на локальных машинах пользователей, то те, кто еще не запусктил ее - и не запустят нихрена, потому как файла по указанному пути уже нет.


Никаких проблем.
Делаем крохотный фиксированный "переходник" (не изменяемый, не обновляемый и не удаляемый), который и запускает основную программу. Сведения о текущем местоположении основной программы можно хранить в реестре. В общем, такой своеобразный "миниСОМ" и "миниRPC" :)
В общем, основополагающая идея - множественные уровни опосредования и каскадное делегирование...

585
06 июля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by fellow
Никаких проблем.
Делаем крохотный фиксированный "переходник" (не изменяемый, не обновляемый и не удаляемый), который и запускает основную программу. Сведения о текущем местоположении основной программы можно хранить в реестре. В общем, такой своеобразный "миниСОМ" и "миниRPC" :)
В общем, основополагающая идея - множественные уровни опосредования и каскадное делегирование...


А лисапед-то какой, с колесами от КАМАЗа:D

310
06 июля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by honeybeer
А лисапед-то какой, с колесами от КАМАЗа:D


Это что? Закос под иронию? :)
Так напрасно. Метод простой, не громоздкий, и вполне работоспособный. :)

2.1K
06 июля 2005 года
greyich
117 / / 02.02.2005
Цитата:
Originally posted by fellow
Это что? Закос под иронию? :)
Так напрасно. Метод простой, не громоздкий, и вполне работоспособный. :)



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

9.8K
06 июля 2005 года
TFluid
15 / / 05.07.2005
Принцип такой - программка находится на сетевом диске и политикой домена прописано запускать ее, когда пользователь логинится... в итоге имеем просто экзешник, запущенный с сетевого диска. Я конечно понимаю, что можно скопировать ее в другой файл, тот запустить и завершиться... но зачем такой геморрой? Разве нельзя просто во время работы "отпустить" свое тело?
9.8K
06 июля 2005 года
TFluid
15 / / 05.07.2005
Ведь если подумать - при закрытии экзешника операционная система освобождает файл, так почему бы не сделать это немного раньше?
310
06 июля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by TFluid
Ведь если подумать - при закрытии экзешника операционная система освобождает файл, так почему бы не сделать это немного раньше?


Ну, сам посуди:
Вот освободил ты файл после старта процесса, чья-то шкодливая рука его перенесла или грохнула. И в этот момент приложение затребовало какой-нибудь ресурс.... BSOD'ов давно не ловили? Получите на всю катушку!

9.8K
07 июля 2005 года
TFluid
15 / / 05.07.2005
Цитата:
Originally posted by fellow
Ну, сам посуди:
Вот освободил ты файл после старта процесса, чья-то шкодливая рука его перенесла или грохнула. И в этот момент приложение затребовало какой-нибудь ресурс.... BSOD'ов давно не ловили? Получите на всю катушку!



Чего такое BSOD??? Я так понимаю, к своему телу приложение больше не обращается, а если ресурс - это не его тело, то оно его получит по требованию, разве не так?

585
07 июля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by TFluid
Чего такое BSOD??? Я так понимаю, к своему телу приложение больше не обращается, а если ресурс - это не его тело, то оно его получит по требованию, разве не так?



BSOD - Blue Screen Of Death.
Программа не загружается в память вся без остатка, ибо нефиг. Поэтому файл остается открытым.

9.8K
07 июля 2005 года
TFluid
15 / / 05.07.2005
Цитата:
Originally posted by honeybeer
BSOD - Blue Screen Of Death.
Программа не загружается в память вся без остатка, ибо нефиг. Поэтому файл остается открытым.



А че это она не загружается? Моя загружается вся....

310
07 июля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by TFluid
А че это она не загружается? Моя загружается вся....


Эх ты, святая простота... :D :D :D :D
Ресурсы могут храниться (и, как правило, хранятся) в том же файле, что и код. И ОС, чтобы не строить работу на зыбкой почве предположений, логично и безусловно блокирует екзешник во избежание подобного рода проблем.

9.8K
07 июля 2005 года
TFluid
15 / / 05.07.2005
Цитата:
Originally posted by fellow
Эх ты, святая простота... :D :D :D :D
Ресурсы могут храниться (и, как правило, хранятся) в том же файле, что и код. И ОС, чтобы не строить работу на зыбкой почве предположений, логично и безусловно блокирует екзешник во избежание подобного рода проблем.



Я понимаю, что программка не вся грузится обычно, но моя загружается сразу со всеми ресурсами... поэтому грузится вся :-) Так есть возможность освободить файл до закрытия, или нет? :-)

310
07 июля 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by TFluid
Я понимаю, что программка не вся грузится обычно, но моя загружается сразу со всеми ресурсами... поэтому грузится вся :-) Так есть возможность освободить файл до закрытия, или нет? :-)


Это ты знаешь, что вся. Вернее, предполагаешь, точного знания в этом вопросе не может быть по определению, т.к. ты не Бог всемогущий и не создатель ОСи :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог