Linux 감시 타이머 사용

Linux 감시 타이머 사용

저는 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 명령의 지연을 설명할 수 있습니다.

  1. 무슨 일이 일어나고 있는지 어떻게 알 수 있나요?
  2. 원격으로 강제 재부팅하는 방법이 있나요? 절전 모드에서 부팅하기 위해 WoL 패킷을 보낼 수 있다는 것을 알고 있지만 다시 시작할 수 있는 방법은 없습니다. 단 한 줄의 코드만으로도 상자에 SSH를 설정하고 실행될 때까지 기다릴 수 있습니다. 이 시점에서는 전원을 전환하기 위해 Pi를 설치하거나 원격 제어를 위해 UPS를 사용하고 싶습니다.

답변1

Linux 감시 타이머 사용

세 번째 단계가 있습니다:

  1. sudo apt 설치 워치독

  2. sudo gedit /etc/watchdog.conf

    줄의 시작 부분에서 max-load참조 줄을 제거하여 주석 처리를 해제합니다 . #저장 및 종료.

  3. sudo systemctl 재시작 워치독

이제 귀하의 컴퓨터는 Linux 감시 장치로 보호되며 다음에 로드가 너무 높아지면 자동으로 재부팅됩니다.

설명하다

당신은 그것을 사용할 수 있습니다감시 타이머문제가 발생하면 자동으로 재부팅하도록 Linux 커널에 내장되어 있습니다. 일단 설정되면 감시 타이머는 카운트다운되며, 0에 도달하기 전에 재설정하지 않으면 시스템이 재부팅됩니다. 따라서 타이머를 주기적으로 재설정하는 것이 필요합니다.워치독 데몬:

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

추가 읽기

참고: "하드웨어"와 "소프트웨어" 감시 장치에 대해 걱정하지 마십시오. Linux 커널에 내장된 소프트웨어 감시 장치는 하드웨어 감시 장치보다 신뢰성이 약간 낮습니다. 귀하의 경우 로드 평균이 매우 높으면 소프트웨어 감시만으로 충분합니다.

관련 정보