ネットワーク機器からのsyslogをMac OS Xで受け付ける方法のメモ。
> sudo vi /System/Library/LaunchDaemons/com.apple.syslogd.plist
syslogdのサービス定義XML(?)を編集する。
外部ホストからのsyslogを受け付けるのは,ファイル下の方にある <!-- Un-comment the following lines to enable the network syslog protocol listener. -->" とかかれている場所のコメントアウトを外せばよい。
ぐぐると起動コマンドに"-u"を加える方法もあるが,こちらは以前(10.4まで?)の方法で,Leopard(10.5)ではうまく動かない。
編集が終わったら,以下のコマンドでsyslogdのサービスを読み込み直す。
> sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
> sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist
これで,514/UDPでサービスを受け付けるようになり,外部ホストからのsyslogも受け付ける。
あとは必要に応じて /etc/syslog.conf を編集し,ファシリティと出力先ファイルの対応を変えればよい。
Mac OS Xにwgetないかなぁ,と調べていたらcurl(/usr/bin/curl)というコマンドがあることが判明。
これを使えばわざわざwgetをビルド/インストールする必要ないじゃん。
使い方はhelpを見れば書いてあるけど,wgetとたいして変わらない。
ちなみに,curlというとリッチクライアントのcurlを思い出すけど,こちらは"Client for URL"という意味。
"カール"ではなく"シー,ユーアールエル"と呼ぶらしい。
以前,DNSサーバでもちょこっと触れたけど,Mac OS X Leopard(10.5)のサービス制御はlaunchdなるものを使っている。あのあとPostgreSQLやSubversionを入れたのでこいつらのデーモンをOS起動と同時に動くよう設定することにした。
サービス制御を行う場合,/Library/LaunchDaemons/ ディレクトリ以下にサービス制御を行うXMLファイルを書いてlaunchdに読み込ませればよい(OSが標準で定義するものは /System/Library/LaunchDaemons/ となるがこちらは原則変えない)。
OSが標準で定義するXMLを参考に,手元のPostgreSQLの場合,次のようにした。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GroupName</key>
<string>pgsql</string>
<key>Label</key>
<string>jp.shiden.PostgreSQL</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/pgsql/bin/postgres</string>
<string>-D</string>
<string>/service/database</string>
<string>-i</string>
</array>
<key>StandardErrorPath</key>
<string>/dev/null</string>
<key>StandardOutPath</key>
<string>/dev/null</string>
<key>UserName</key>
<string>pgsql</string>
</dict>
</plist>
この定義の場合,意味はおおむね次のかんじ。
- サービス名称を"jp.shiden.PostgreSQL" とする(これは一意であればよいのでテキトー)
- 起動ユーザ,グループを pgsql:pgsql とする
- コマンドを "/usr/local/pgsql/bin/postgres -D /Users/pgsql/database -i" とする
- 標準出力,エラーをいずれも /dev/null とする
- launchctlでのロード時に起動までおこなう
ちなみに,この設定ファイルを書くに当たってはまったのは次の2点。
- pg_ctlで起動した場合,処理終了後pg_ctlプロセス自体はlaunchctlでエラーになってしまう
(だからpostgresで起動するようにした)
- OnDemandをfalseにしないと,自動起動しない
(必要に応じてlaunchctl start ... で起動するという意味になってしまうから)
とまぁ,試行錯誤(結構時間食った)を経て,無事必要なサービスが自動起動するようになりましたとさ。これでちょっとは使い勝手がよくなったかな。
自宅サーバであるMac MiniでDNSサーバを再構築。
named.confだのゾーンファイルだのについては後で余裕があれば記載するが,とりあえずMac OS 10.5 (Leopard)でのブート時の自動起動設定方法だけ備忘録としてメモ。ちなみに以下の情報のソースはここ。
> sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
/System/Library/LaunchDaemons以下にあるXMLを見てブート時の振る舞いを制御しているのか。なるほど。
しかし,前に使っていた10.3(Panther)とだいぶ違うねぇ......。こうもバージョンによって扱いが頻繁に変わると使う方は困るなぁ。
以前(10.4 Tigerまで)はnetinfoがあったが,dsclというコマンドベースに置き換わったとのこと。
Mac OS 10.5 LeopardでPostgreSQLを導入するときに,サービス用のグループとユーザーを登録するときのコマンド履歴をメモとして残しておく。
> dscl -u [ユーザ名]
> Password: [パスワード]
dscl> -create /Groups/_pgsql
dscl> -append /Groups/_pgsql RecordName pgsql
dscl> -append /Groups/_pgsql PrimaryGroupID 301
dscl> -append /Groups/_pgsql RealName "PostgreSQL Users"
dscl> -create /Users/_pgsql
dscl> -append /Users/_pgsql RecordName pgsql
dscl> -append /Users/_pgsql UniqueID 301
dscl> -append /Users/_pgsql PrimaryGroupID 301
dscl> -append /Users/_pgsql Password '*'
dscl> -append /Users/_pgsql RealName "PostgreSQL Server"
dscl> -append /Users/_pgsql NFSHomeDirectory /Users/pgsql
dscl> -append /Users/_pgsql UserShell /bin/bash
dscl> q
>
ちなみに既存のサービス用ユーザー情報に従い,ユーザー名の頭に'_'を入れてみた。でも意図は分からない。
自宅で使っているMac mini(Mac OS 10.3)で対応しないソフトウェアが増えてきた。Safariも1.x止まりだし,Firefoxもバージョン3は対応しないしで,これらを使用するには10.4(Tiger)以降へのバージョンアップが必要となる。
で,折角だからOSのバージョンアップを検討。で,折角OSを換えるのだから,ケースを開けて各種パーツもできる範囲でアップグレードしてみようと試みる。古いパーツは十分値段も安いし,そろそろ手に入らなくなってくるので。かつ,ハードはもはや保証期間切れなので,ケース(というか殻)を開けてみたくなったので。
購入したのは以下のハードウェア/ソフトウェア
- HDD: HGST HTS541616J9AT00 (160G 5400RPM) 6280円也
(これまではToshiba 80G 4300RPM)
- メモリ: Trancend 1GB DDR-PC3200 3480円也
(いままではMicron 512MB DDR-PC3200)
- 光学ドライブ: Sony NEC Optiarc AD-7630A (DVDスーパーマルチドライブ) 6980円也
(いままではMatsushitaのDVD/CDコンボドライブ)
- OS: Mac OS 10.5 Leopard 14800円也
(いままではMac OS 10.3 Panther)
で,Mac Mini開けて折角必死に換装したらDVDスーパードライブがMac OS 10.3だとライティングに対応していない......。なにも考えずにお手頃価格のを買ったのが悪かったか。しかもドライブが歪みやすいためか,うるさいし。
まぁ,OSまで換装してなんとか使える状態になってきたが,結構手間がかかったなぁ。費用も(特にOS......)結構かかったし。
でも,せっかく貴重(?)なPowerPCのMacがあってスピードも困っていないのだから使い倒さないとね。