2013-06-03 1 views
8

Я пытаюсь создать быстрый автообновление в Perl Windows. Я заметил, что когда я вызываю cpanp для установки обновления пакета, он не может установить новую версию скрипта, потому что скрипт в настоящий момент запущен. Сейчас я звоню cpanp с CORE::system(). Если я позвоню cpanp с exec(), это освободит исполняемый файл для замены? Или Windows держит его привязанным, хотя выполнение полностью перевернуто на cpanp?Автоматическое обновление сценария Windows, заменяющего текущий исполняемый файл exec?

В настоящее время, мой поток процесс выглядит примерно так,

  1. Скачать META.yml с сервера
  2. PARSE из версии META.yml
  3. сравниваемый с текущим $VERSION
    • Если ток версия ниже, сгенерируйте строку версии, используя данные в META.yml
      1. Ge nerate URL-адрес для пакета с использованием хоста/пути fo META.yml и информации о версии/данных
      2. Сообщите об этом пользователю
      3. Spawn cpanp для запуска обновления по URL.
    • Если текущая версия такая же
      1. не делать ничего

бы system() вести себя иначе, чем exec() на Win32 в отношении замены исполняемого файла? В Linux он работает как разработанный.

+0

Вы говорите о ** Perl ** Исполняемом? –

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^