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の各ユーザーインスタンスは、1つ以上のアクティブなログインセッションがある場合にのみ実行されます。ログに示すように、3つの異なるプロセスIDを持つ3つのインスタンスがあります。最後のログインセッションが停止した場合は、systemd-logind
systemd の各ユーザーインスタンスを停止し、次のログインセッションの開始時に新しいインスタンスを起動します。もちろん、ホスティングサービスはサービスマネージャなしでは実行されません。
enable-linger
このコマンドのサブコマンドを使用してこの設定を変更できますloginctl
。