在Windows上如何后台运行JuiceFS
Ceph对象存储方案
共 2031字,需浏览 5分钟
· 2022-03-13
在Windows上如何后台运行JuiceFS
1. 背景&解决方案
JuiceFS的Badger引擎改造完成以后,需要在Windows下面进行后台运行。因为现有的JuiceFS中还没有在Windows下的后台运行实现,所以需要通过其他途径解决。
现有代码地址 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
}
网上找了一大圈,发现一个nssm的命令行工具比较好用
https://nssm.cc/ 官网
https://nssm.cc/release/nssm-2.24.zip 工具下载地址
https://git.nssm.cc/nssm/nssm.git 源码仓库
2. 脚本实现
以Windows10下为例,将相关操作封装成对应的批处理。具体如下
1. 服务注册脚本
解压对应的工具到Windows10下面的的D:/juicefs
目录即可,同时将编译好的juicefs.exe也放置在同一个目录,创建一个初始化脚本InstallService.bat
,该脚本用于注册一个名为JuiceFS
的系统服务(开机自启动),并指定对应的挂载盘符,内容如下
@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. 服务关停脚本
脚本名称StopService.bat
@echo off
set juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe stop JuiceFS
3. 服务卸载脚本
脚本名称RemoveService.bat
@echo off
set juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe remove JuiceFS confirm
3. 运行须知
需要注意的是,上面的脚本都需要用系统管理员权限
运行
运行成功以后,可以成功在资源管理器中看到对应的盘符
系统服务面板会注册一个名为JuiceFS
的后台服务
评论
Parallels Desktop在 Mac 上运行 Windows
ParallelsDesktopforMac是由Parallels推出的一款为使用英特尔处理器的苹果电脑提供硬件虚拟化的软件。用户可以通过ParallelsDesktopforMac在苹果电脑上安装W
Parallels Desktop在 Mac 上运行 Windows
0
手把手教你在Windows上运行Linux!
点击「阅读原文」查看良许原创精品视频。来自:majianguo链接:cnblogs.com/majianguo/p/8047676.html 正文 之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安...
良许Linux
0
Cassowary在 Linux 上运行 Windows 应用程序
借助Cassowary,你可以运行Windows虚拟机并在Linux上使用Windows应用程序,就好像它们是基于FreeRDP和远程应用程序技术构建的本机应用程序一样。使用linux应用程序启动位于
Cassowary在 Linux 上运行 Windows 应用程序
0
Bottles在 Linux 上轻松运行 Windows 软件
Bottles旨在让你可以在Linux上轻松运行Windows软件和游戏。环境赋能Bottles引入了一种使用环境处理Windowsprefixes 的新方法,即即用型设置、库和依赖项的组合。根据你要
Bottles在 Linux 上轻松运行 Windows 软件
0
Valve ProtonLinux 上运行 Windows 游戏
Proton是与Steam客户端一起使用的工具,它能够让 Windows平台上的游戏在Linux操作系统上运行。基于Wine。Proton是Steam平台所属的Valve公司旗下的产品,开放源代码是为
Valve ProtonLinux 上运行 Windows 游戏
0