8
我想在Perl Windows中構建一個快速自動更新程序。我注意到當我呼叫cpanp
安裝軟件包的更新時,由於該腳本當前正在運行,因此無法安裝新版本的腳本。目前我撥打cpanp
與CORE::system()
。如果我用exec()
調用cpanp
,是否會釋放用於替換的可執行文件?或者,即使執行完全轉移到cpanp
,Windows是否仍然保持聯機狀態?Windows腳本自動更新用exec替換當前的可執行文件?
目前,我的流程看起來是這樣的,從服務器
- 下載META.yml
- 解析出META.yml的版本
- 比較逆水
$VERSION
- 如果當前版本較低,使用META.yml中的數據生成版本字符串
- Ge使用META.yml的主機/路徑以及版本/數據信息
- 通知用戶更新
- 生成
cpanp
以使用URL運行更新。
- 如果當前的版本是一樣的
- 什麼都不做
- 如果當前版本較低,使用META.yml中的數據生成版本字符串
會system()
行爲不同於exec()
在Win32關於更換可執行的?在Linux上,它按照設計工作。
你說的是** Perl **可執行文件嗎? –