Cover photo

Linux上利用firejail沙盒,实现程序环境隔离多开cysic

本着节约为本的原则,利用一切可利用资源,从而实现利润最大化,特写此教程。由于firejail本身资源占用比极低(对比docker),故通过firejail沙盒环境隔离,可以在资源很低的情况下实现一机多开。以下以在ubuntu上多开cysic 进行举例

准备阶段

  • 思考自己需要开多少个程序,假设是3

  • 准备好自己的cysic的程序及配置文件

操作步骤

安装firejail

sudo apt install firejail -y

根据多开数量创建firejail沙盒目录

mkdir ~/firejail_env1 ~/firejail_env2 ~/firejail_env3

将cysic脚本和配置拷贝到沙盒目录

cp -rf ~/cysic-verifier ~/firejail_env1/
cp -rf ~/cysic-verifier ~/firejail_env2/
cp -rf ~/cysic-verifier ~/firejail_env3/

按需修改每个沙盒环境中的配置的奖励地址

#用vim或者nano 打开文件,修改配置中的claim_reward_address
nano ~/firejail_env1/cysic-verifier/config.yaml

直接启动,验证是否启动正常

#检查启动是否正常,是否有报错
firejail --private=~/firejail_env1 bash -c "cd cysic-verifier && ./start.sh"

pm2启动和后台管理

#如果之前没安装pm2,执行如下命令进行安装(已安装忽略)
sudo apt install npm -y
sudo npm install pm2 -g

# pm2启动cysic1
pm2 start 'firejail --private=~/firejail_env1 bash -c "cd cysic-verifier && ./start.sh"' --name "cysic1"

# pm2启动cysic2
pm2 start 'firejail --private=~/firejail_env2 bash -c "cd cysic-verifier && ./start.sh"' --name "cysic2"

# pm2启动cysic3
pm2 start 'firejail --private=~/firejail_env3 bash -c "cd cysic-verifier && ./start.sh"' --name "cysic3"

pm2查看状态和日志

# 查看列表
pm2 ls
post image
# 查看cysic日志
pm2 logs cysic1
pm2 logs cysic2
pm2 logs cysic3
post image

其他

由于firejail 执行命令时设定了firejail_env1当作沙盒的私有文件根目录,故在隔离环境中写入到~/下的任何数据,包括key、param都会在firejail_env1下。如果需要替换key,直接替换此目录下的key即可

post image