1.安装Supervisord
1.1 安装命令
yum install supervisor
1.2 更新配置命令
/usr/bin/supervisord -c /etc/supervisord.conf
/usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
supervisorctl reload
1.3设置开机启动
vim supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
1.4 将文件拷贝到/usr/lib/systemd/system/
cp supervisord.service /usr/lib/systemd/system/
1.5 启动服务
systemctl enable supervisord
1.6 验证是否自启动
systemctl is-enabled supervisord
2.下载rclone的liunx安装包或者直接上传下载好的离线版本到服务器中
curl https://rclone.org/install.sh | sudo bash
2.1 进入到 /etc/supervisord.d/目录中
cd /etc/supervisord.d/
2.2 创建rclone.ini文件(我这里启用了三个rclone进程,用于设置不同的上传速度,设置上传优先级)
[program:rclone]
command = /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5572 --rc-user=root --rc-pass=123456
user = root
;supervisor启动的时候是否随着同时启动,默认True
autostart = true
;
;;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
autorestart = true
;
;;这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs = 5
;
;;把stderr重定向到stdout,默认 false
redirect_stderr = true
;
;;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
stopasgroup = true
;
;;默认为false,向进程组发送kill信号,包括子进程
killasgroup = true
;
;;stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 50MB
;
;;stdout日志文件备份数
stdout_logfile_backups = 10
;;日志输出
stdout_logfile = /var/log/supervisor/rclone.log
stderr_logfile=/var/log/rclone.err.log ; 错误日志文件
rclone2.ini
[program:rclone2]
command = /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5573 --rc-user=root --rc-pass=123456
user = root
;supervisor启动的时候是否随着同时启动,默认True
autostart = true
;
;;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
autorestart = true
;
;;这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs = 5
;
;;把stderr重定向到stdout,默认 false
redirect_stderr = true
;
;;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
stopasgroup = true
;
;;默认为false,向进程组发送kill信号,包括子进程
killasgroup = true
;
;;stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 50MB
;
;;stdout日志文件备份数
stdout_logfile_backups = 10
;;日志输出
stdout_logfile = /var/log/supervisor/rclone2.log
stderr_logfile=/var/log/rclone2.err.log ; 错误日志文件
rclone3.ini
[program:rclone3]
command = /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5574 --rc-user=root --rc-pass=123456
user = root
;supervisor启动的时候是否随着同时启动,默认True
autostart = true
;
;;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
autorestart = true
;
;;这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs = 5
;
;;把stderr重定向到stdout,默认 false
redirect_stderr = true
;
;;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
stopasgroup = true
;
;;默认为false,向进程组发送kill信号,包括子进程
killasgroup = true
;
;;stdout日志文件大小,默认 50MB
stdout_logfile_maxbytes = 50MB
;
;;stdout日志文件备份数
stdout_logfile_backups = 10
;;日志输出
stdout_logfile = /var/log/supervisor/rclone3.log
stderr_logfile=/var/log/rclone3.err.log ; 错误日志文件
2.3启动服务
systemctl start rclone
systemctl start rclone2
systemctl start rclone3
2.4查看是否安装成功
[root@node-2 supervisord.d]# ps -ef|grep rclone
root 315770 301515 0 14:41 ? 00:00:02 /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5574 --rc-user=root --rc-pass=123456
root 315771 301515 0 14:41 ? 00:00:02 /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5573 --rc-user=root --rc-pass=123456
root 315772 301515 0 14:41 ? 00:00:02 /home/rclone-v1.58.1-linux-amd64/rclone rcd --rc-addr=0.0.0.0:5572 --rc-user=root --rc-pass=123456
root 517415 433678 0 17:38 pts/2 00:00:00 grep --color=auto rclone
[root@node-2 supervisord.d]#
2.5 设置minio的挂载配置
#在/root/.config/rclone中创建rclone.conf配置文件
[minio]
type = s3
provider = Minio
access_key_id = admin
secret_access_key = admin123
endpoint = http://172.16.0.97:9000
rclone启动命令
rclone rcd --rc-addr=0.0.0.0:5556 --rc-user=root --rc-pass=123456
rclone rcd --rc-addr=0.0.0.0:5557 --rc-user=root --rc-pass=123456
rclone rcd --rc-addr=0.0.0.0:5558 --rc-user=root --rc-pass=123456
3.Supervisord管理进程常用命令
Supervisord安装完成后有两个可用的命令行supervisor和supervisorctl,命令使用解释如下:
supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop groupworker: ,重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update,根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
systemctl enable supervisord.service
4.将本服务器的文件夹复制到其他服务器中
scp -r -P 端口 /home/rclone-v1.58.1-linux-amd64(本服务器目录) root@127.0.0.1:/home/rclone-v1.58.1-linux-amd64(目标服务器)