Lotus systemd service
1,lotus-daemon.service
- 编译二进制文件
# make install
install -C ./lotus /usr/local/bin/lotus
install -C ./lotus-storage-miner /usr/local/bin/lotus-storage-miner
install -C ./lotus-seal-worker /usr/local/bin/lotus-seal-worker
- 创建服务
# make install-services
install -C ./lotus /usr/local/bin/lotus
install -C ./lotus-storage-miner /usr/local/bin/lotus-storage-miner
install -C ./lotus-seal-worker /usr/local/bin/lotus-seal-worker
mkdir -p /usr/local/lib/systemd/system
mkdir -p /var/log/lotus
install -C -m 0644 ./scripts/lotus-daemon.service /usr/local/lib/systemd/system/lotus-daemon.service
install -C -m 0644 ./scripts/lotus-miner.service /usr/local/lib/systemd/system/lotus-miner.service
systemctl daemon-reload
lotus-daemon and lotus-miner services installed. Don't forget to 'systemctl enable lotus-daemon|lotus-miner' for it to be enabled on startup.
- 查看创建的服务
# cat /usr/local/lib/systemd/system/lotus-daemon.service
[Unit]
Description=Lotus Daemon
After=network-online.target
Requires=network-online.target
[Service]
Environment=GOLOG_FILE="/var/log/lotus/daemon.log"
Environment=GOLOG_LOG_FMT="json"
ExecStart=/usr/local/bin/lotus daemon
Restart=always
RestartSec=10
MemoryAccounting=true
MemoryHigh=8G
MemoryMax=10G
LimitNOFILE=8192:10240
[Install]
WantedBy=multiuser.target
- 修改环境变量
Environment=GOLOG_FILE="/storage/lotus.log"
Environment=GOLOG_LOG_FMT="json"
Environment=FIL_PROOFS_PARAMETER_CACHE="/storage/filecoin-proof-parameters-v27"
Environment=LOTUS_PATH="/storage/lotuswork/lotus"
Environment=TMPDIR="/storage/lotuswork/tmpdir"
Environment=IPFS_GATEWAY="//proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
# systemctl daemon-reload
# systemctl enable lotus-daemon.service
# systemctl start lotus-daemon.service
# systemctl status lotus-daemon.service
- 运行报错
# lotus net peers
2020-07-08T06:33:56.111Z WARN main lotus/main.go:81 could not get API info:
github.com/filecoin-project/lotus/cli.GetRawAPI
/storage/master/lotus/cli/cmd.go:140
- could not get api endpoint:
github.com/filecoin-project/lotus/cli.GetAPIInfo
/storage/master/lotus/cli/cmd.go:123
- API not running (no endpoint)
- 添加环境变量
vim .bashrc
# lotus
export LOTUS_PATH=/storage/lotuswork/lotus
# source .bashrc
# lotus net peers
QmTd6UvR47vUidRNZ1ZKXHrAFhqTJAD27rKL9XYghEKgKX, [/ip4/147.75.67.199/tcp/4001]
12D3KooWT2S5yVjmBnycMoaRbcAPG4z7GA8NoEeL9Mv3g9PN99Sm, [/ip4/182.136.75.60/tcp/37601]
12D3KooWSFxVdpzN2LjoeXqNeeJiqGATdBdFKtHxTn6sMsuBAoa6, [/ip4/101.200.55.118/tcp/34721]
- 需要添加环境变量
# lotus
export LOTUS_PATH=/storage/lotuswork/lotus
export LOTUS_STORAGE_PATH=/storage/lotuswork/lotusstorage
export WORKER_PATH=/storage/lotuswork/lotusworker
export TMPDIR=/storage/lotuswork/tmpdir
# parameters
export FIL_PROOFS_PARAMETER_CACHE=/storage/filecoin-proof-parameters-v27
export IPFS_GATEWAY=https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/
root@ubuntu02:~# echo $IPFS_GATEWAY
2,lotus-miner.service
vim /usr/local/lib/systemd/system/lotus-miner.service
[Unit]
Description=Lotus Storage Miner
After=network.target
After=lotus-daemon.service
Requires=lotus-daemon.service
[Service]
ExecStart=/usr/local/bin/lotus-storage-miner run
Environment=GOLOG_FILE="/storage/miner.log"
Environment=GOLOG_LOG_FMT="json"
Environment=LOTUS_PATH="/storage/lotuswork/lotus"
Environment=LOTUS_STORAGE_PATH="/storage/lotuswork/lotusstorage"
Environment=WORKER_PATH="/storage/lotuswork/lotusworker"
Environment=TMPDIR="/storage/lotuswork/tmpdir"
Environment=FIL_PROOFS_PARAMETER_CACHE="/storage/filecoin-proof-parameters-v27"
Environment=IPFS_GATEWAY="https://proof-parameters.s3.cn-south-1.jdcloud-oss.com/ipfs/"
Environment=RUST_LOG="trace"
Environment=RUST_BACKTRACE="full"
Environment=FIL_PROOFS_USE_GPU_COLUMN_BUILDER="1"
Environment=FIL_PROOFS_USE_GPU_TREE_BUILDER="1"
Environment=FIL_PROOFS_MAXIMIZE_CACHING="1"
LimitNOFILE=327680
LimitNOFILESoft=245760
Restart=always
RestartSec=30
[Install]
WantedBy=multiuser.target
# systemctl daemon-reload
# systemctl enable lotus-miner.service
# systemctl start lotus-miner.service
# systemctl status lotus-miner.service
参考:
1.Use Lotus with systemd