• 検索結果がありません。

mac-service管理 txt - Ter

N/A
N/A
Protected

Academic year: 2021

シェア "mac-service管理 txt - Ter"

Copied!
14
0
0

読み込み中.... (全文を見る)

全文

(1)

[ mac-service管理130117.txt ] Macのサービス管理 ~~~~~~~~~~~~~~~~~ July 9, 2011 January 17, 2013 ■ サービス管理コマンドlaunchctl ・launchctlのサブコマンド: - load (-w) 設定ファイルパス:サービスをロードする。-w を指定すると Disabledキーにfalseを設定する。 - unload (-w) 設定ファイルパス:サービスをアンロードする。-w を指定すると Disabledキーにtrueを設定する。 - start ラベル :このラベルのサービスを開始。 - stop ラベル :このラベルのサービスを停止。 - list :サービスの一覧を表示 ・ Disabledキーはサービスの無効(true)・有効(false)を設定する。全ての サービスのDisabledキー設定値は1つのファイル /var/db/launchd.db/com.apple.launchd/overrides.plist に保存される。v 10.6からは -w オプションによってplist設定ファイルの   Disabled キー設定値を変更することはできない。 ・ launchd はネットワーク接続、時間、ファイルやディレクトリの変化等   多様なイベント監視機構をもつ.OnDemandにfalseを指定するとサービス   は常駐するが、trueを指定した場合、サービスはイベント駆動になる. ・ OS起動時にサービスを自動起動するためには (Linuxのcheckconfig 機能相当) Disabled false かつOnDemand false にする。

・ plist設定ファイルの OnDemand(v10.6からKeepAlive)キーがfalseの   常駐サービスは、サービスがロードされると直ちに起動する。またstop サブコマンドにより停止後再び起動する。

※参考資料

  - マニュアル:man lanchctl , man lanchcd.plist - 参考文献 :Mac OS X 10.5 as UNIX p.163, 337  ■ ファイル共有 ・GUI (システム環境設定→共有) により起動・停止できるサービス service plist --- httpd /System/Library/LaunchDaemons/org.apache.httpd.plist ftp /System/Library/LaunchDaemons/ftp.plist smb /System/Library/LaunchDaemons/smbd.plist, nmbd.plist ssh /System/Library/LaunchDaemons/ssh.plist vnc ・共有ディレクトリ: /capture, /macmini を共有設定画面から指定する。 ・samba (smb+nmb)設定ファイルについて

(2)

[ mac-service管理130117.txt ] /etc/smb.conf /var/db/smb.conf : /etc/smb.confからインクルード /var/db/samba/smb.shares : /etc/smb.confからインクルード 後の2つは GUI画面からの設定が反映されているので編集しない。 ・コンピュータ名、Bonjour名、NetBIOS名を別々に命名できる ■ snmp (OnDemand=false) (/usr/sbin/snmpd ) ・plist (Launchd の設定ファイル) /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist ・設定ファイルは /etc/snmp/snmpd.conf ・launchdの配下ではなく、単独に起動することもできるがMac起動時にサービス  を開始するためにはlaunchdの管理下におくのがよい ・ launchdコマンド操作: (1) snmp のプロセス番号確認 # ps aux | grep snmp root 96516 0.0 0.1 2437852 4136 ?? Ss 8:43AM 0:01.56 snmpd -f (2) launchd の管理を外す

# launchctl unload /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist (3) snmp のプロセスは消える

# ps aux | grep snmp (4) launchd の管理へ戻す

# launchctl load /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist (5) snmp のプロセス番号確認 (番号は変更された)

# ps aux | grep snmp

root 96619 0.0 0.1 2437844 4004 ?? Ss 8:49AM 0:00.04 snmpd -f (6) launchd stop でプロセス番号が変わる

# launchctl stop org.net-snmp.snmpd (※ start/ stop はラベルを指定) # ps aux | grep snmp root 96684 0.0 0.1 2437844 4004 ?? Ss 8:53AM 0:00.04 snmpd -f ■ httpd (OnDemand=false) (/usr/sbin/httpd ) ・plist(Launchd の設定ファイル) /System/Library/LaunchDaemons/org.apache.httpd.plist ・設定ファイル: /etc/apache2/httpd.conf ・設定ファイルインクルード: /etc/apache2/extra/*, /etc/apache2/other/* ・DocumentRoot: /Library/WebServer/Documents ・サーバ/クライアントともにGUI画面からもhttpdの起動・停止が可能

■ postfix ( OnDemand=true ) ( /usr/sbin/postfix ) ・plist(Launchd の設定ファイル)

(3)

[ mac-service管理130117.txt ] ・デーモンは以下のようにQueueDirectoriesキーを使用してディレクトリを 監視、必用に応じて起動する. <key>QueueDirectories</key> <array> <string>/var/spool/postfix/maildrop</string> </array> ・設定ファイルは /etc/postfix/main.cf  so-netのOP25Bに対応し、so-netの指定するSMTPサーバを経由してメールを  外部に送出する設定を追加。  relayhost = [mail.so-net.ne.jp]:587

smtp_sasl_auth_enable = yes ( smtpd_sasl_auth_enableではない! ) smtp_sasl_password_maps = hash:/etc/postfix/authinfo

パスワードファイル/etc/postfix/authinfoは別途作成しdb化する。 ・独自コマンドの利用が可能:postfix start/stop/reload/check ・postfixは最初からmac os 10.6 に導入されている

 メール中継機能はない。

■ BIND9 (OnDemand=false) (/usr/sbin/named ) ・plist(Launchd の設定ファイル)

/System/Library/LaunchDaemons/org.isc.named.plist ・設定ファイルは /etc/named.conf

- cache サーバに設定 ・自動起動設定:

- launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist ・BIND9は最初からmac os 10.6 に導入されている

■ TUN / TAP (OnDemand=false) ・plist(Launchd の設定ファイル)

Launchd の設定ファイル/Library/LaunchDaemons/org.macports.tuntaposx.plist

■ OpenVPN2 (OnDemand=false ) (/opt/local/sbin/openvpn2, openvpn2-client) ・plist (Launchd の設定ファイル) - 富山サーバ  :/Library/LaunchDaemons/openvpn2.plists  - 大塚サーバのクライアント:   /Library/LaunchDaemons/openvpn2-client.plists ・サーバー設定ファイルは /etc/openvpn2/server.conf - /etc/openvpn2/easy-rsa/下は各種証明書や秘密鍵を作成する環境として設定 ・クライアント設定ファイルは /etc/openvpn2/ohtsuka.ovpn

(4)

[ mac-service管理130117.txt ]

・openvpn2.plistの内容

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";> <plist version="1.0"> <dict> <key>Label</key> <string>org.openvpn2</string> (* client→org.openvpn2-client) <key>OnDemand</key> <false/> <key>Program</key> <string>/opt/local/sbin/openvpn2</string> <key>ProgramArguments</key> <array> <string>openvpn2</string> <string>--config</string>

<string>server.conf</string> (* client→ ohtsuka.ovpn) </array> <key>RunAtLoad</key> <true/> <key>TimeOut</key> <integer>90</integer> <key>WorkingDirectory</key> <string>/etc/openvpn2</string> </dict> </plist> ■ ntp (KeepAlive ) (/usr/sbin/ntpd ) ・plist (Launchd の設定ファイル ) /System/Library/LaunchDaemons/org.ntp.ntpd.plists ・設定ファイルは /etc/ntp.conf - server time.asia.apple.com ・状態表示は ntpq -p

(5)

[ MacのCRON20130117.txt ] Launchd における CRON 機能 2011/7/8 2013/01/17 ******************************** Launchdがもつcron機能 デーモンは起動しない <key>StartCalendarInterval</key> ******************************** ■ periodic # /System/Library/LaunchDaemons/com.apple.periodic-daily.plist <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.apple.periodic-daily</string> <key>ProgramArguments</key> <array> <string>/usr/sbin/periodic</string> <string>daily</string> </array> <key>LowPriorityIO</key> <true/> <key>Nice</key> <integer>1</integer> <key>StartCalendarInterval</key> (※) <dict> <key>Hour</key> <integer>3</integer> <key>Minute</key> <integer>15</integer> </dict> <key>AbandonProcessGroup</key> <true/> </dict> </plist> ■ newsyslog # /System/Library/LaunchDaemons/com.apple.newsyslog.plist <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.apple.newsyslog</string> <key>ProgramArguments</key> <array> <string>/usr/sbin/newsyslog</string>

(6)

[ MacのCRON20130117.txt ] </array> <key>LowPriorityIO</key> <true/> <key>Nice</key> <integer>1</integer> <key>StartCalendarInterval</key> (※) <dict> <key>Minute</key> <integer>30</integer> </dict> </dict> </plist> ***************************** 従来からの cronデーモンを起動 ***************************** ■ cron (RunAtLoad)    - RunAtLoad: launchdにジョブがロードされたときすぐにタスクを起動する # /System/Library/LaunchDaemons/com.vix.cron.plist (旧) <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.vix.cron</string> <key>ProgramArguments</key> <array> <string>/usr/sbin/cron</string> </array> <key>RunAtLoad</key> <true/> <key>WatchPaths</key> (※) <array> <string>/etc/crontab</string> </array> <key>QueueDirectories</key> (※) <array> <string>/var/cron/tabs</string> </array> </dict> </plist>  ※ このリストでは、WatchPathsで/etc/crontabを、QueueDirectoriesで  /var/cron/tabsディレクトリを監視するように指定されている。Tigerの  インストール直後/etc/crontabには何の設定もされておらず、/var/cron/tabsも  空になっている。しかし、crontabファイルを編集したりcrontabコマンドで  /var/cron/tabs以下にユーザーごとのcrontabが登録されると、launchdはcronを  起動し、それらの処理を任せる。こうすることで、従来からのUNIXユーザーや  開発者がcrontabを使ったソフトウェアを使用しても何ら問題ないようにできている。 QueueDirectoriesキーを使用してディレクトリを監視する例としては、postfix

(7)

[ MacのCRON20130117.txt ]  デーモンが挙げられる。postfixは以下のようにスプールを監視、必用に応じて  起動する。 <key>QueueDirectories</key> <array> <string>/var/spool/postfix/maildrop</string> </array> ■ cron (KeepAlive) - KeepAlive: 常に起動するようにlaunchdが動作する。起動したプロセスを killしてもすぐ立ち上げなおされる。bool型以外にdictionary型で細かい 指定が可能。 # /System/Library/LaunchDaemons/com.vix.cron.plist (新) <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.vix.cron</string> <key>ProgramArguments</key> <array> <string>/usr/sbin/cron</string> </array> <key>KeepAlive</key> (*) <dict> <key>PathState</key> <dict> <key>/etc/crontab</key> <true/> </dict> </dict> <key>QueueDirectories</key> (*) <array> <string>/usr/lib/cron/tabs</string> </array> <key>EnableTransactions</key> <true/> </dict> </plist> ※ 設定ファイルで使用するキーについて(WikiPedia等ネットワーク情報より) ・Label  ジョブの名称。慣習により、ジョブの名称は.plist拡張子を除いたplistの  ファイル名とおなじ。  必須。  ・Program  実行ファイルへのパス。シンプルな起動に役立つ。  ProgramかProgramArgumentsのどちらか一つが必須。

(8)

[ MacのCRON20130117.txt ]  ・ProgramArguments  unixコマンドを表した文字列。はじめの文字列はふつう実行ファイルへのパスで、  あとの文字列はオプションやパラメータを含む。  ProgramかProgramArgumentsのどちらか一つが必須。  ・UserName  ここで与えられたユーザでジョブを実行する。必ずしもそれをlaunchdにサブミット  したユーザでなくてもよい。  オプション。デフォルトではrootかカレントユーザ。  ・OnDemand  10.5では非推奨。ジョブを持続的に実行するかどうかを定義するブーリアンフラグ。  オプション。デフォルトではtrue。  ・RunAtLoad  launchdにジョブがロードされたときすぐにタスクを起動するかどうかを定義する  ブーリアンフラグ。  オプション。デフォルトではfalse。  ・StartOnMount  新しいファイルシステムがマウントされたときにタスクを起動するかどうかを定義  するブーリアンフラグ。  オプション。デフォルトではfalse。  ・QueueDirectories  新しいファイルがないかディレクトリを監視する。開始するにはディレクトリは  空でなければならない。また、QueueDirectoriesがふたたびタスクを起動する  まえに空の状態にもどさなければならない。  オプション。  ・WatchPaths  変更がないかファイルかフォルダのパスを監視する。  オプション。  ・StartInterval  ジョブをくり返して実行するスケジュールにする。実行のあいだのウェイト秒数  として指定される。  オプション。  ・StartCalendarInterval  ジョブスケジューリング。構文はcronと同様。  オプション。  ・Label  launchd のジョブの名前。ユニークな名前を付ける。必須か慣例か分からないけど、  ファイル名もこのLabelに.plistという拡張子を付けたものにする。  必須。  ・ProgramArguments  実行するプログラムとオプションや引数を、arrayノードに入れ子で書く。  必須。  ・KeepAlive  trueなら常に起動するようにlaunchdががんばる。起動したプロセスをkillしても  すぐ立ち上げなおされる。bool型以外にdictionary型で細かい指定が可能。  falseがデフォルト値。

(9)

[ MacのCRON20130117.txt ]

 ・RunAtLoad

 true なら launchd に launchd.plist がロードされたタイミングで起動する。

(10)

[ net-snmp-mrtg.txt ] net-snmp-mrtg 2011/06/14 2013/01/19 ■ net-snmp ・launchd設定ファイル: /System/Library/LaunchDaemons/org.net-snmp.snmpd.plist <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"

"http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Disabled</key> <true/> <key>Label</key> <string>org.net-snmp.snmpd</string> <key>OnDemand</key> <false/> <key>Program</key> <string>/usr/sbin/snmpd</string> <key>ProgramArguments</key> <array> <string>snmpd</string> <string>-f</string> </array> <key>ServiceIPC</key> <false/> </dict> </plist> ・設定ファイル: /etc/snmp/snmp.conf ######################################################################## # Access Control ######################################################################## com2sec local localhost public

com2sec securenet 192.168.0.0/16 secure ####

group local_group v1 local group local_group v2c local group secure_group v1 securenet group secure_group v2c securenet ####

view all included .1 80

#view view_mib2 included .1.3.6.1.4.1.2021 fc ####

access local_group "" any noauth exact all all none access secure_group "" any noauth exact all none none #### syslocation /etc/snmp/snmpd.conf syscontact Root<[email protected]> #### proc sshd 20 1 disk / 10%

(11)

[ net-snmp-mrtg.txt ]

・自動起動設定: launchctl unload -w org.net-snmp.snmpd.plist

■ mrtg (以下はネットワーク情報( macOSX 10.5 にインストール)を参考にした) ・インストール: port install mrtg

・mrtg設定ファイル作成:

/opt/local/bin/cfgmaker --output=/usr/local/mrtg/mrtg.cfg [email protected] ・mrtg.cfg を Linux のmrtg を参考にして編集   ・mrtgディレクトリ/Library/webServer/Documents/mrtg  Apache2公開ディレクトリに作成   ・crontab (root) を設定しmrtgを5分間隔で起動 */5 * * * * /opt/local/bin/mrtg /usr/local/mrtg/mrtg.cfg

(12)

[ macos-newsyslog.txt ] 【Mac OS X】newsyslogを使ってログローテートする ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ July 8, 2011 Mac OS Xにおいて定期的なログローテートを行うには「newsyslog」を使う。 Apacheのログについて設定する。 設定ファイル「/private/etc/newsyslog.conf」に、以下の行を追加。 #### Apache用の設定 (時間でローテートする例) /var/log/apache2/access_log 644 7 * $W1D04 JB /var/run/httpd.pid /var/log/apache2/error_log 644 7 * $W1D04 JB /var/run/httpd.pid #### Apache用の設定 (容量でローテートする例) /var/log/apache2/access_log 640 5 100 * J  /var/run/httpd.pid /var/log/apache2/error_log 640 5 100 * J  /var/run/httpd.pid ■newsyslog.confの設定

logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] 各部の説明 logfilename ログファイル名 owner:group 新しく作るログファイルの所有権(省略可) mode 新しく作るログファイルのパーミッション count 保存するログの限度数 size ローテートを始めるサイズ(KB単位) when ローテートを始める時刻 flags 圧縮状態などを決めるフラグ /pid_file pid ファイルへのパス(省略可) sig_num ローテート時にプロセスへ送るシグナル(省略可) sizeとwhenはどちらか片方しか指定できず、もう片方には「*」を置いておく。 フラグ一覧 B newsyslogがローテートしたことをログ自身に記さない。 C 指定されたログが存在しなければ作成する。 D 新しく作成するログファイルにUF_NODUMPフラグを付ける *1 。 G 指定されたログファイル名をシェルの規則によって展開する。 J 古いログファイルをbzip2(1)で圧縮する。 N ログファイルをローテートするときにシグナルを送るプロセスは存在しない。 U 指定されたpidファイルに含まれるIDはプロセスのIDではなく、 プロセスグループのIDである。 Z 古いログファイルをgzip(1)で圧縮する。 - 何も意味しない。後に続く文字列をフラグと区別するために使う。 「size」指定はキロバイト単位で行う。例えば、「100」を指定した場合、 ログファイルが100KBに達するたびにローテートが行われる。 「when」指定は複雑だ。書式としては@形式と$形式の2つがある。 @形式 「@YYYYMMDDThhmmss形式」で絶対時刻を指定する。しかし、後述する理由で 分以下の指定にはあまり意味がない。

(13)

[ macos-newsyslog.txt ] @20100315T043000 2010年3月15日4時30分 @15T043000 毎月15日4時30分 @T3000 毎時30分 $形式 これは更に5つの形式に分かれる。 $Dhh 毎日hh時 $Ww 毎週w曜日 $WwDhh 毎週w曜日hh時 $Mdd 毎月dd日 $MddDhh 毎月dd日hh時 記号 取り得る値 hh 0~23 w 0(日)~6(土) dd 1~31、L(晦日) 纏めると、一番初めに挙げた例「$W1D04 JB」は次のような意味になる。 ・毎週月曜日4時に実行する ・ファイルをbzip2で圧縮する。 ・ログファイルにローテートしたことを記さない。 ■ newsyslogの起動 例えば、Linuxに於いてのログローテートはlogrotateコマンドをcronで定期的に 実行することで行う。Mac OS XにおいてLinuxにおけるcronの役目に当たるのは launchdである。 launchdの設定ファイル群は/System/Library/LaunchDaemons にある。newsyslogに 関する設定ファイルを見てみよう。 # cat com.apple.newsyslog.plist <?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.apple.newsyslog</string> <key>ProgramArguments</key> <array> <string>/usr/sbin/newsyslog</string> </array> <key>LowPriorityIO</key> <true/> <key>Nice</key> <integer>1</integer> <key>StartCalendarInterval</key> <dict> <key>Minute</key> <integer>30</integer>

(14)

[ macos-newsyslog.txt ] </dict> </dict> </plist> newsyslogは毎時30分に起動する。つまり少なくとも初期設定のままでは、 newsyslog.confでは分単位の指定には意味がないのだ。毎時一回の実行というのは 用途から言えば十分ではあるが、最初に試したときは指定した時間になっても起動 せず、30分後に実行されたので面食らってしまった。 ※ PIDファイルの指定はしておかないとローテションがうまくいかないようです。 これはログファイルのサイズが100KBに到達し、ログのローテーションが行われても、 「Web共有機能」はその作業が終了したことにが気がつかず「あれ?私が記述しない といけないログファイルはどこに行ったの?」な状態になるからのようです。 なので間違えないようにPIDファイルの指定のところも入力しておきましょう。 もし必要があればPIDファイルの指定の後ろにスペースを入れ、さらに30と追記し、 シグナルの指定もしておくとよいかもしれません。

参照

関連したドキュメント

地蔵の名字、という名称は、明治以前の文献に存在する'が、学術用語と

では「ジラール」成立の下限はいつ頃と設定できるのだろうか。この点に関しては他の文学

始めに山崎庸一郎訳(2005)では中学校で学ぶ常用漢字が149字あり、そのうちの2%しかル

[今日のタブ]から Fitbit アプリ内で、[プロファイル写真]>[ Inspire HR のタイ ル]をタップします。..

噸狂歌の本質に基く視点としては小それが短歌形式をとる韻文であることが第一であるP三十一文字(原則として音節と対応する)を基本としへ内部が五七・五七七という文字(音節)数を持つ定形詩である。そ

SVF Migration Tool の動作を制御するための設定を設定ファイルに記述します。Windows 環境 の場合は「SVF Migration Tool の動作設定 (p. 20)」を、UNIX/Linux

管理画面へのログイン ID について 管理画面のログイン ID について、 希望の ID がある場合は備考欄にご記載下さい。アルファベット小文字、 数字お よび記号 「_ (アンダーライン)

奥付の記載が西暦の場合にも、一貫性を考えて、 []付きで元号を付した。また、奥付等の数