네트워크 UPS 도구 클라이언트에서 macOS/mac OSX를 종료하는 방법 - NUT

네트워크 UPS 도구 클라이언트에서 macOS/mac OSX를 종료하는 방법 - NUT

UPS에서 실행하는 동안 정전을 감지하여 iMac을 종료하는 데 도움을 찾고 있습니다.

내 설정은 두 개의 Synology NAS에 전원을 공급하는 APC SMT750i UPS와 iMac 및 네트워크 키트(라우터, 스위치 등)입니다. 모두 괜찮습니다. Synology는 Linux 및 NUT의 변형을 실행합니다. MacPorts를 사용하여 iMac(High Sierra 10.13.6)에 NUT(v 2.6.5)를 설치했습니다. 한 NAS는 USB를 통해 UPS에 직접 연결되어 NUT 네트워크에서 '마스터' 역할을 하고, 다른 NAS와 iMac은 '슬레이브' 역할을 합니다.

정전이 발생하면 마스터는 UPS의 상태를 감지하고 이를 슬레이브에 알리며, 슬레이브 모두 이를 수신합니다. NAS는 둘 다 구성된 대로 올바르게 '안전 모드'로 들어갑니다. iMac은 상태 변경 OK를 수신하고 로그인한 사용자에게 반복적으로 경고합니다.하지만 실제로는 종료되지 않습니다., 내가 원하고 믿는 대로 구성했습니다.

나는 온라인, 특히 다음 사이트에서 찾을 수 있는 모든 조언을 따랐습니다.

https://networkupstools.org/

MacOS에서 부팅 시 NUT 클라이언트를 자동으로 시작하는 방법

https://diktiosolutions.eu/en/synology/synology-ups-nut-en/

내가 도대체 ​​뭘 잘못하고있는 겁니까?

Mac NUT 구성 파일:

/etc/upsmon.conf

RUN_AS_USER root
MONITOR [email protected] 1 monuser ****** slave
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -u -h +1"
NOTIFYCMD /opt/local/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE   EXEC+SYSLOG+WALL
NOTIFYFLAG ONBATT   EXEC+SYSLOG+WALL
NOTIFYFLAG LOWBATT  EXEC+SYSLOG+WALL
NOTIFYFLAG FSD      EXEC+SYSLOG+WALL
NOTIFYFLAG COMMOK   EXEC+SYSLOG
NOTIFYFLAG COMMBAD  EXEC+SYSLOG
NOTIFYFLAG SHUTDOWN EXEC+SYSLOG+WALL
NOTIFYFLAG REPLBATT EXEC+SYSLOG+WALL
NOTIFYFLAG NOCOMM   EXEC+SYSLOG+WALL
NOTIFYFLAG NOPARENT EXEC+SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5

/etc/upssched.conf

CMDSCRIPT /opt/local/bin/upssched-cmd
PIPEFN /opt/local/var/db/ups/upssched/upssched.pipe
LOCKFN /opt/local/var/db/ups/upssched/upssched.lock
AT ONBATT  [email protected] EXECUTE      on-battery
AT ONLINE  [email protected] EXECUTE      ups-back-on-line
AT COMMBAD [email protected] START-TIMER  upsgone 75
AT COMMOK  [email protected] CANCEL-TIMER upsgone

/bin/upssched-cmd

#! /bin/sh

case $1 in
    upsgone)
        logger -t upssched-cmd "Lost communication with UPS"
        /usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Lost contact with UPS server" buttons {"OK"} default button 1 with icon note'
        ;;
    on-battery)
        logger -t upssched-cmd "UPS is running on battery"
        /usr/bin/osascript -e 'tell app "System Events"                         to display dialog "Power failure. Save your work" buttons {"OK"} default button 1'
        ;;
    ups-back-on-line)
        logger -t upssched-cmd "UPS is running on utility power"
        /usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Power restored to UPS" giving up after 600 buttons {"OK"} default button 1 with icon note'
        ;;
    *)
        logger -t upssched-cmd "Unrecognized command: $1"
        /usr/bin/osascript -e "tell app (path to frontmost application as text) to display dialog \"upssched-cmd: unsupported command $1\" buttons {\"OK\"} default button 1 with icon caution"
        ;;
esac

답변1

내 설정에 실제로 효과가 있었던 이 두통에 대한 솔루션입니다.

UPS1 - 다음 연결된 장치를 갖춘 Cyberpower 800W UPS

  • 목록 항목 Synology diskstation
  • 목록 항목 8 스위치/허브
  • 목록 항목 게이트웨이

UPS2 - 다음 연결된 장치를 사용하여 사이버 전력 300와트 업

  • 목록 항목 타임머신 외장 하드 드라이브
  • 목록 항목 Mac Mini

여기에 아이디어가 있습니다.

UPS1은 UPS 지원 활성화 옵션을 사용하여 Synology diskstation에 연결됩니다. 그런 다음 디스크 스테이션이 안전 모드로 들어가기 전의 시간은 기본적으로 5분입니다. 그런 다음 UPS1에 연결된 두 번째 UPS2에서 옵션이 설정된 Mac mini로 연결됩니다. UPS1이 배터리를 소모하면 USP2 배터리가 켜지고 Mac Mini가 종료되도록 설정합니다. 또는 독립 소켓의 USP1 및 UPS2에 플러스를 추가한 다음 거기에서도 설정을 지정할 수 있습니다.

관련 정보