前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Windows上如何后台运行JuiceFS

在Windows上如何后台运行JuiceFS

作者头像
用户1260683
发布2022-03-30 08:17:37
2.8K0
发布2022-03-30 08:17:37
举报
文章被收录于专栏:Ceph对象存储方案

在Windows上如何后台运行JuiceFS

1. 背景&解决方案

JuiceFS的Badger引擎改造完成以后,需要在Windows下面进行后台运行。因为现有的JuiceFS中还没有在Windows下的后台运行实现,所以需要通过其他途径解决。

现有代码地址 https://github.com/juicedata/juicefs/blob/main/cmd/mount_windows.go#L48

代码语言:javascript
复制
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的系统服务(开机自启动),并指定对应的挂载盘符,内容如下

代码语言:javascript
复制
@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

代码语言:javascript
复制
@echo off
set juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe stop JuiceFS
3. 服务卸载脚本

脚本名称RemoveService.bat

代码语言:javascript
复制
@echo off
set juicefs_dir=D:\juicefs\
%juicefs_dir%nssm.exe remove JuiceFS confirm

3. 运行须知

需要注意的是,上面的脚本都需要用系统管理员权限运行

运行成功以后,可以成功在资源管理器中看到对应的盘符

系统服务面板会注册一个名为JuiceFS的后台服务

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ceph对象存储方案 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在Windows上如何后台运行JuiceFS
    • 1. 背景&解决方案
      • 2. 脚本实现
        • 3. 运行须知
        相关产品与服务
        命令行工具
        腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档