自宅のPCサーバー(Linux:CentOS)にUPSを付けることにした。
今までUPSをつけないでいたために、何台かPCのディスクを故障させてしまった。
一度の突然の電源断でもディスクが破壊される場合もあるが、何度も電源断があるとディスクのアクセスアームが磁気ディスク(円盤)を傷つけてしまう。
今年は、夏真っ盛りになる前にUPSを付けて停電・ブレーカー落ちに対応する。
購入したUPSは、APC RS550電源バックアップ(500VA) BR550G-JP です。
てっきり、Linux用のPowerChuteもCDに含まれていると思っていたら、なんとありませんでした。
APCのサイトでRPM版のPowerChuteが公開されていましたが、CentOSのリポジトリでapcupsd・apcupsd-gui・apcupsdーcgiがあるので、これをインストールする。
Unable to communicate with the UPS on 127.0.0.1.エラーで接続できない。SELinuxでエラーが吐き出されているので確認してみる。
アクセスを許可httpd がネットワークポートに接続するように設定する場合、httpd_can_network_network_connect boolean をオンにする必要があります: "setsebool -P httpd_can_network_connect=1"
次のコマンドがこのアクセスを許可します:
setsebool -P httpd_can_network_connect=1
追加情報
ソースコンテキスト: system_u:system_r:httpd_sys_script_t ターゲットコンテキスト: system_u:object_r:apcupsd_port_t ターゲットオブジェクト: None [ tcp_socket ] Source: upsstats.cgi Source Path: /var/www/apcupsd/upsstats.cgi Port: 3551 Host: hoge Source RPM Packages: apcupsd-cgi-3.14.10-1.el5 Target RPM Packages: ポリシー RPM: selinux-policy-2.4.6-327.el5 Selinux 有効化: True ポリシータイプ: targeted MLS 有効化: True 強制モード: Enforcing プラグイン名: httpd_can_network_connect ・ ・ ・
生の監査メッセージ :
host=ora02 type=AVC msg=audit(1342584417.76:293): avc: denied { name_connect } for pid=7159 comm="upsstats.cgi" dest=3551 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:apcupsd_port_t:s0 tclass=tcp_socket
host=ora02 type=SYSCALL msg=audit(1342584417.76:293): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfba290 a2=3 a3=804eb20 items=0 ppid=3361 pid=7159 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="upsstats.cgi" exe="/var/www/apcupsd/upsstats.cgi" subj=system_u:system_r:httpd_sys_script_t:s0 key=(null)
早速、指示通りに # setsebool -P httpd_can_network_connect=1 を実行すると...