私はxRDP(時にはSSH)を介してリモート接続するデスクトップでUbuntu 18.04を実行しています。コンピュータは病院の研究室にあり、VPNを使用して接続します。警告やモードなしでプログラミングのためにRDPを介して接続すると、デスクトップはRDPで停止し、ほとんどの場合SSH経由でログインできなくなります。これにより、コロナウイルスに対する懸念により閉鎖される予定だった研究室を訪問するようになりました。 :/
しかし、最近はSSHが停止して再接続されました。入力に対する応答時間が30秒以上遅れます。私は次を見る:
Last login: Wed Mar 4 16:01:39 2020 from 111.11.1.111
htop
^CFailed to import the site module
Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
^Ctop
user:~$ top
^C
^C
^C^C^C
user:~$ Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
File "/usr/lib/python3.6/io.py", line 52, in <module>
^C
user:~$ top
^C
user:~$ sudo reboot
import abc
File "/usr/lib/python3.6/abc.py", line 6, in <module>
from _weakrefset import WeakSet
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
File "/usr/lib/python3.6/io.py", line 52, in <module>Fatal Python error: Py_Initialize: can't initialize sys standard streams
Traceback (most recent call last):
File "/usr/lib/python3.6/io.py", line 52, in <module> File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
^A^C^C File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
File "<frozen importlib._bootstrap>", line 577, in module_from_spec
File "<frozen importlib._bootstrap>", line 556, in _init_module_attrs
File "<frozen importlib._bootstrap>", line 409, in cached
File "<frozen importlib._bootstrap_external>", line 364, in _get_cached
File "<frozen importlib._bootstrap_external>", line 294, in cache_from_source
^C^CKeyboardInterrupt
[sudo] password for user:
user:~$ uptime
00:46:27 up 2 days, 2:22, 1 user, load average: 190.28, 185.42, 162.91
user:~$ sudo reboot -f
top
何が実行されているかを確認するために実行しようとしましたが、結果は返されませんでした。非常に高い負荷が表示されuptime
ており、これはSSHコマンドの遅延を説明できます。
- 何が起こっているのか、どうすればわかりますか?
- リモートで強制再起動する方法はありますか?スリープモードで起動するためにWoLパケットを送信できることを知っていますが、再起動する方法はありません。 1行のコードだけで、ボックスにSSHを設定して実行するのを待つことができます。この時点で、電源を切り換えるためにPiをインストールするか、リモートコントロールにUPSを使用したいと思います。
答え1
Linux監視タイマーの使用
3番目のステップがあります:
sudo apt インストール ウォッチドッグ
sudo gedit /etc/watchdog.conf
行の先頭から
max-load
参照行を削除してコメントを解除します。#保存と終了。sudo systemctl 再起動 ウォッチドッグ
お使いのコンピュータはLinuxウォッチドッグで保護され、次回の負荷が高すぎると自動的に再起動されます。
説明する
あなたはそれを使用することができます監視タイマー問題が発生した場合は、自動的に再起動するようにLinuxカーネルに組み込まれています。一度設定すると、監視タイマーはカウントダウンされ、ゼロに達する前にリセットしないとシステムが再起動します。したがって、タイマーを定期的にリセットする必要があります。ウォッチドッグデーモン:
sudo apt install watchdog
これにより、システムが正常であることを確認し、カーネルに通知するためにいくつかのテストを実行するユーザースペースデーモンであるwatchdogdがインストールされます。時間制労働者60秒以上寝てください。これらのテストが失敗した場合、または60秒以上かかると、システムは再起動します。
非常に設定可能です。/etc/watchdog.conf
たとえば、以下は、報告された190という非常に高い負荷平均を検出するセクション(デフォルトでは注釈付き)です。
# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
#max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
追加読書
- ウォッチドッグデーモンマニュアル:http://manpages.ubuntu.com/manpages/bionic/man8/watchdog.8.html
- Watchdogデーモン設定ファイル:http://manpages.ubuntu.com/manpages/bionic/man8/watchdog.conf.5.html
注:「ハードウェア」および「ソフトウェア」監視装置について心配しないでください。 Linuxカーネルに組み込まれているソフトウェア監視デバイスは、ハードウェア監視デバイスよりも信頼性がわずかに低くなります。あなたの場合、負荷平均が非常に高い場合は、ソフトウェアを監視するだけで十分です。