데몬 서비스에서 IPFS 저장소 위치 변경

데몬 서비스에서 IPFS 저장소 위치 변경

저는 개인 IPFS 네트워크의 일부로 IPFS 데몬을 유지 관리하는 서비스를 만드는 중입니다.

모든 사용자가 쉽게 IPFS를 사용할 수 있도록 하기 위해 /opt 폴더에서 IPFS 저장소를 초기화하기로 선택했습니다. /etc/bash.bashrc모든 사용자의 기본 위치가 이 /opt 폴더에 있도록 IPFS_PATH를 설정했습니다 .

18:53:02 [foo@server ~]
$ echo $IPFS_PATH
/opt/ipfsNode/.ipfs

이 작업이 완료되면 IPFS 저장소를 성공적으로 초기화하고 예상대로 데몬을 시작할 수 있었습니다.

$ ipfs daemon
Initializing daemon...
go-ipfs version: 0.12.2
Repo version: 12
System version: amd64/linux
Golang version: go1.16.15
Swarm is limited to private network of peers with the swarm key
Swarm key fingerprint: [redacted]
Swarm listening on /ip4/<ip>/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit
Swarm announcing /ip4/<ip>/tcp/4001
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/<ip>/tcp/5001
WebUI: http://<ip>:5001/webui
Gateway (readonly) server listening on /ip4/<ip>/tcp/8080
Daemon is ready

이를 서비스로 전환하기 위해 /etc/systemd/system/ipfs.service다음 예제를 사용하여 에서 이 서비스 정의를 만들었습니다.엘렉스 연구실:

[Unit]
 Description=IPFS Daemon
 After=syslog.target network.target remote-fs.target nss-lookup.target
 [Service]
 Type=simple
 ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub
 User=foo
 [Install]
 WantedBy=multi-user.target

그러나 서비스가 시작될 때가 ~/.ipfs아닌 내 홈 디렉토리 위에 초기화된 저장소를 사용해 보는 것 같습니다 . ${IPFS_PATH}/.ipfs이미 초기화한 저장소를 찾으려면 이를 어떻게 변경할 수 있나요?

● ipfs.service - IPFS Daemon
     Loaded: loaded (/etc/systemd/system/ipfs.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2022-06-01 18:43:03 UTC; 17min ago
    Process: 227966 ExecStart=/usr/local/bin/ipfs daemon --enable-namesys-pubsub (code=exited, status=1/FAILURE)
   Main PID: 227966 (code=exited, status=1/FAILURE)

Jun 01 18:43:03 <server> systemd[1]: Started IPFS Daemon.
Jun 01 18:43:03 <server> ipfs[227966]: Initializing daemon...
Jun 01 18:43:03 <server> ipfs[227966]: go-ipfs version: 0.12.2
Jun 01 18:43:03 <server> ipfs[227966]: Repo version: 12
Jun 01 18:43:03 <server> ipfs[227966]: System version: amd64/linux
Jun 01 18:43:03 <server> ipfs[227966]: Golang version: go1.16.15
Jun 01 18:43:03 <server> ipfs[227966]: Error: no IPFS repo found in /home/foo/.ipfs.
Jun 01 18:43:03 <server> ipfs[227966]: please run: 'ipfs init'
Jun 01 18:43:03 <server> systemd[1]: ipfs.service: Main process exited, code=exited, status=1/FAILURE
Jun 01 18:43:03 <server> systemd[1]: ipfs.service: Failed with result 'exit-code'.

답변1

[서비스] 아래에 이 줄을 추가해 보세요.

Environment="IPFS_PATH=/path/to/ipfs"

관련 정보