在Windows上如何后臺運行JuiceFS
在Windows上如何后臺運行JuiceFS
1. 背景&解決方案
JuiceFS的Badger引擎改造完成以后,需要在Windows下面進行后臺運行。因為現(xiàn)有的JuiceFS中還沒有在Windows下的后臺運行實現(xiàn),所以需要通過其他途徑解決。
現(xiàn)有代碼地址 https://github.com/juicedata/juicefs/blob/main/cmd/mount_windows.go#L48
func?makeDaemon(c?*cli.Context,?name,?mp?string,?m?meta.Meta)?error?{
????logger.Warnf("Cannot?run?in?background?in?Windows.")
????return?nil
}
網(wǎng)上找了一大圈,發(fā)現(xiàn)一個nssm的命令行工具比較好用
https://nssm.cc/ 官網(wǎng)
https://nssm.cc/release/nssm-2.24.zip 工具下載地址
https://git.nssm.cc/nssm/nssm.git 源碼倉庫
2. 腳本實現(xiàn)
以Windows10下為例,將相關(guān)操作封裝成對應(yīng)的批處理。具體如下
1. 服務(wù)注冊腳本
解壓對應(yīng)的工具到Windows10下面的的D:/juicefs目錄即可,同時將編譯好的juicefs.exe也放置在同一個目錄,創(chuàng)建一個初始化腳本InstallService.bat,該腳本用于注冊一個名為JuiceFS的系統(tǒng)服務(wù)(開機自啟動),并指定對應(yīng)的掛載盤符,內(nèi)容如下
@echo?off
@title?Run?JuiceFS?Background
echo?********************************
echo?Setting?mount?path,(example:?mount_path=Z)
set?mount_path=Z
set?/p?mount_path="Set?mount_path="
echo?Mount?JuiceFS?To?%mount_path%
set?dir_name=badger_test
echo?dir_name:badgerDB?path
echo?cache_dir:directory?paths?of?local?cache
echo?max_uploads:directory?paths?of?local?cache
echo?cache_size?:?size?of?cached?objects?in?MiB?(default:?102400)
echo?********************************
set?max_uploads=150
set?cache_size=102400
set?juicefs_dir=D:\juicefs\
set?cache_dir=%juicefs_dir%cache
if?exist?%cache_dir%?(
echo?"cache?exist"
)?else?(
md?%cache_dir%
echo?"create?cache_dir"
)
%juicefs_dir%nssm.exe?install?JuiceFS?Application=%juicefs_dir%juicefs.exe
%juicefs_dir%nssm.exe?set?JuiceFS?Application?%juicefs_dir%juicefs.exe
%juicefs_dir%nssm.exe?set?JuiceFS?AppDirectory?%juicefs_dir%
%juicefs_dir%nssm.exe?set?JuiceFS?AppParameters?mount??--cache-dir=%cache_dir%?--cache-size=%cache_size%?--max-uploads=%max_uploads%?--no-usage-report?--debug??badger://%dir_name%??%mount_path%:
%juicefs_dir%nssm.exe?start?JuiceFS
2. 服務(wù)關(guān)停腳本
腳本名稱StopService.bat
@echo?off
set?juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe?stop?JuiceFS
3. 服務(wù)卸載腳本
腳本名稱RemoveService.bat
@echo?off
set?juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe?remove?JuiceFS?confirm
3. 運行須知
需要注意的是,上面的腳本都需要用系統(tǒng)管理員權(quán)限運行

運行成功以后,可以成功在資源管理器中看到對應(yīng)的盤符

系統(tǒng)服務(wù)面板會注冊一個名為JuiceFS的后臺服務(wù)

評論
圖片
表情
