AWS EC2 인스턴스에서 인스턴스를 호스팅 bitcoind
하고 다음 서비스 파일을 사용하여 이를 사용자로 제공하고 있습니다.
[Unit]
Description=Bitcoind
[Service]
Type=simple
ExecStart=/usr/local/bin/bitcoind
Restart=always
[Install]
WantedBy=default.target
일반적으로 모든 것이 괜찮습니다. bitcoind
때때로 재부팅이 꽤 많이 발생하는 것으로 나타났습니다 . 그러나 systemctl
이는 적어도 재부팅할 수 있다는 관점에서는 또 다른 이야기입니다.
여기에는 정상적인 부분과 문제가 있는 부분을 보여주는 로그가 포함되어 있습니다.
Mar 02 10:39:46 ip- systemd[2751]: Started Bitcoind.
Mar 02 10:40:07 ip- systemd[2751]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 02 10:40:07 ip- systemd[2751]: Stopped Bitcoind.
Mar 02 10:40:07 ip- systemd[2751]: Started Bitcoind.
Mar 02 21:06:26 ip- systemd[2751]: Stopping Bitcoind...
Mar 02 21:06:28 ip- systemd[2751]: Stopped Bitcoind.
Mar 03 03:37:45 ip- systemd[28091]: Started Bitcoind.
Mar 03 03:59:15 ip- systemd[28091]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 03 03:59:15 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 03:59:15 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:09 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:16 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:01:22 ip- systemd[28091]: bitcoind.service: Service hold-off time over, scheduling restart.
Mar 03 04:01:22 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 04:01:22 ip- systemd[28091]: Started Bitcoind.
Mar 03 04:14:35 ip- systemd[28091]: Stopping Bitcoind...
Mar 03 04:14:35 ip- systemd[28091]: Stopped Bitcoind.
Mar 03 04:15:44 ip- systemd[13180]: Started Bitcoind.
서비스가 중지되었지만 systemctl
다시 시작되지 않는 경우가 있습니다. 인스턴스에 SSH로 접속할 때만 재부팅되고 "모든 것이 다시 작동하게 만드는" 것처럼 보입니다.
로그를 보면 이런 일이 발생합니다.
Mar 02 21:06:26 ip- systemd[2751]: Stopping Bitcoind...
Mar 02 21:06:28 ip- systemd[2751]: Stopped Bitcoind.
Mar 03 03:37:45 ip- systemd[28091]: Started Bitcoind.
분명히 systemctl
stop 을 발견했지만 bitcoind
인스턴스에 ssh를 연결할 때까지만 다시 시작됩니다.
이 문제를 추가로 해결하는 방법에 대한 조언이 있습니까? 도움을 주셔서 감사드리며 최대한 많은 정보를 제공하도록 노력하겠습니다.
답변1
나는 그것을 사용자 서비스로 가지고 있습니다. [...] 인스턴스에 SSH로 접속할 때만 다시 시작됩니다. [...]
systemd의 각 사용자 인스턴스는 하나 이상의 활성 로그인 세션이 있을 때만 실행됩니다. 로그에서 볼 수 있듯이 3개의 서로 다른 프로세스 ID를 가진 3개의 인스턴스가 있습니다. 마지막 로그인 세션이 중단되면 systemd-logind
systemd의 각 사용자 인스턴스를 중지하고 다음 로그인 세션이 시작될 때 새 인스턴스를 시작하십시오. 물론 호스팅 서비스는 서비스 관리자 없이는 실행되지 않습니다.
enable-linger
이 명령의 하위 명령을 사용하여 이 설정을 변경할 수 있습니다 loginctl
.