技术标签: java bug linux minio linux 内核 文件系统 网络
Minio是个分布式对象存储器,一般搭配NGINX做负载均衡当个图片存储,小文件存储啥的,然后建立连接,确定桶的名字,再根据对象名字取出对象,或者存入对象,有时候还会搭配es什么的存下路径啥的。
今天在linux上配置minio服务,应该是个挺简单的事情,直接
minio serve -C [配置目录] --address[端口] [数据目录]
不过一般不能这么用
写一个start.sh吧。
#start.sh
#!/bin/bash
export MINIO_ACCESS_KEY=xxx
export MINIO_SECRET_KEY=xxx
nohup ./minio server --address :9000 --config-dir ./conf ./data > ./minio.log 2>&1 & (--config-dir 一般可以用-C表示)
写了start.sh当然也要写stop.sh吧,可是minio是没有stop命令的,如果用docker或者它的那个mc的客户端就好用多了。
#stop.sh
kill `netstat -nlp | grep :9000 | awk '{print $7}' | awk -F"/" '{ print $1 }'`
这段命令是我抄的,思路大致是找到pid然后杀掉,这个awk ‘{print $7}’ 会找到一个类似 [pid]/minio 形式的串,awk -F"/" '{ print $1 } 就是根据“/”分割取出pid了。但是还是感觉太low了,每次启动关闭服务都要什么whereis 然后cd啥的
于是试了下使用服务形式的minio.service,一般来说有两种,一种是基于init.d文件的加入服务,一种是基于systemd的服务注册,这里采用了第二种。
直接将一个名为minio.service的unit文件丢到/etc/systemd/system/里去
[Unit]
Description=MinIO #名称
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target #配置运行文件地址
AssertFileIsExecutable=/data/minio/minio
[Service]
User=root
Group=root
EnvironmentFile=-/data/minio/conf/minio.conf #指定配置文件
ExecStart=$PATH/minio server $MINIO_OPTS $MINIO_VOLUMES #按照配置文件方式指定运行
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
详细的说明可以看这篇unit文件格式说明 ,具体配置时注意删除注释。
然后systemctl daemon-reload ,systemctl start minio.service balabal… 然后有一个很奇怪的问题,那就是这个environmentFile怎么都加载不出来,一直报什么failed to run ‘start’ task: No such file or directory 什么的,后来发现给environmentFile加了一个"-“符号就好了,这个”-"符号什么意思,百度了一下,具体含义有以下
这里的含义估计是上一次工作目录,上一次工作目录什么意思?我这里写的难道不是绝对路径吗?总之很奇怪,然而搜了下stackflow,发现还是国外老哥给力
意思是说这在systemd.exec中有提及,如果“-”指向的文件不存在就不会去读这个文件,也不会报错,那么我的问题出在哪里呢
仔细检查后发现有个语句后面注释没有去掉,可以说是千里之堤毁于蚁穴了。
有关systemd的官方文档地址这里可以找到。
各位网友: 为了方便大家查询Blog的历史帖子,Blog开发组开发了历史文章索引页面可以查询所有文章,历史文章索引页面的地址是:http://blog.csdn.net/article/index.html 欢迎大家进行试用和提宝贵建议。 CSDN Blog开发组 2006年9月29日 ..._csdn历史文章
随手摘录Vue解决接口访问跨域问题1.打开 config -> index.js2. 找到proxyTable3.粘贴 如下代码,'https://www.baidu.com'换成要访问的的api域名,记住是域名,不是整个api地址。代码(效果图)如下'/apis': { // 测试环境 target: 'https://www.baidu...._vue访问接口跨域但测试工具没问题
解决方法:将生成的工程中最下面的绿色的cmsis删了就可以了。删除步骤:打开工程,点击配置按钮旁边的长的像色子的那个[manage Run-time environment]找到里面的CMSIS选项,打开,看到里面的[CORE]后面有个√,去掉这个就可以了.点击ok, 工程目录中就没有那个绿色的筛子了,如下图,这样就可以添加自己的文件夹和文件了参考:http://w...
~ : 用于对一个二进制操作数逐位进行取反操作第 1 步:把运算数转换为 32 位的二进制整数。第 2 步:逐位进行取反操作。第 3 步:把二进制反码转换为十进制浮点数。最近在项目中看到这样一段代码this.hour = padNumber(~~(delta / 1000 / 3600))~~它代表双非按位取反运算符,如果你想使用比Math.floor()更快的方法,那就是它了。需要注意,对于正数,它向下取整;对于负数,向上取整;非数字取值为0,它具体的表现形式为:~~null; _js ~~ 使用场景
文件右键太多?win10 ghost小方法删除右键多余菜单虽然大家现在点击某个软件都是双击处理完事,但是偶尔大家需要右键属性的时候,可以看到右键菜单拖拖拉拉长长的一堆,占了大半个屏幕,看起来绝对不美观、不简洁,这是因为长期使用电脑中安装软件附带的添加右键菜单功能,久而久之就成这样了,那么大家如何进行win10 ghost右键菜单设置呢?如何进行win10 ghost鼠标右键菜单清理呢?1:既然大家..._win10右键选项太多
1、建立项目2、建立文件结构3、修改pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo..._ssm登录增删改查
(1).h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。 附加依赖项的是.lib 不是.dll 若生成了DLL ,则肯定也生成 LIB文件 如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。 .h .lib .dll三者的关系是: H文件 作用是:声明函数接口 DLL文件 作用是: 函数可执行代码 当我们在自己的程序中引用了一个H文件里的函数,编链器怎么知道该调用哪个DLL文件呢? 这就是LI_.h .lib .dll
一、基本的编译与安装1、安装依赖项sudo apt-get updatesudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev libssl-dev libxslt1-dev libxml2-dev libgd2-xpm-dev libgeoip-dev libgoogle-perfto...
iOS应用数据存储的常用方式XML属性列表(plist)归档Preference(偏好设置)NSKeyedArchiver归档(NSCoding)SQLite3Core DataXML属性列表(plist)归档属性列表是一种XML格式的文件,拓展名为plist。如果对象是NSString、NSDiction
给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。package 贪心算法;import java.util.ArrayList;import java.util.Arrays;import java.util.Comparator;import java.util.List;//给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。public class NonOvarlappingInverals { private static ArrayL_leetcode 435
在运用Linq to sql 或者 linq to entity等相关linq技术进行数据库访问操作时,如果发生上述异常是因为是因为.NET內部是使用DataReader作数据存取,DataReader用同一个Connection。解决办法有两个:1,设定ConnectionString加上MultipleActiveResultSets=true,但只适用于SQL 2005以后...
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36556893/article/details/79433298 目录一、前言二、改动三、CUDA9.1下载四、cuDNN下载(注册才可以)五、开始搭...