Upload
doaki
View
1.296
Download
0
Embed Size (px)
DESCRIPTION
CentOS5.6 の /etc/rc.d/init.d/functions ぜん27
Citation preview
/etc/rc.d/init.d/functions
/etc/rc.d 配下とかのリーディング勉強会2011/12/09
do_aki
| 所属 | > 株式会社もしも (ドロップシッピング・アフィリエイト ASP )
| 仕事 | > インフラ(サーバ管理)兼 Web アプリケーション開発
| 出現 | > 渋谷・山手線沿線| 特性 | > PHPer
do_aki ( どぅーあき )
http://do-aki.net/
/etc/rc.d/init.d/
functions って何 ?
/etc/rc.d/init.d/functions
. /etc/init.d/functions
. /etc/rc.d/init.d/functions ←実体はこっち
起動スクリプトの先頭によく書いてあるアレ
/etc/rc.d/init.d/functions
• Shell Script
• 起動スクリプトでよく利用される処理の関数群 ( ユーティリティ )
• CentOS 5.6 では、 initscripts パッケージに含まれる
全 27 function を紹介してみる
※ CentOS 5.6 の場合
注意事項
• CentOS 5.6 での内容を元にしてます• マイナーバージョンの違いでも若干異なる
ようです• 6 系だと 5,6 くらい関数増えてるし
• ってか、激しく読みづれぇ… (;´Д ` )
fstab_decode_str
• # Interpret escape sequences in an fstab entry
• fstab のエスケープシーケンスを解釈 ???
• 「 fstab-decode echo “$1” 」を実行しているだけ
1/27
checkpid
• checkpid pid1 pid2 ...• 指定した process id のプロセスが立ち
上がっているなら 0 を返す• 複数指定した場合は、いずれかの pid が
立ち上がっていれば 0 • それ以外は 1
2/27
__readlink
• シンボリックリンクの参照先を表示
• ls -bl "$@" 2>/dev/null| awk '{ print $NF }‘
3/27
__umount_loop
• umount 完了するまで待つ感じ?
• よく分からなくて追ってない
4/27
__umount_loopback_loop
• __umount_loop と似てるけど、こっちは loopback デバイス用に特化されてる
• ってコメントに書いてありました
5/27
__pids_var_run
• __pids_var_run {program} [pidfile]
• pidfile (指定のない場合は、 /var/run/{program} )に含まれる pid を $pid にセット
6/27
__pids_pidof
• __pids_pidof {program}
• {program} に該当するプロセスを pidof • 無ければ、 {program} のベース名で pidof
• __pids_pidof httpd• __pids_pidof /usr/sbin/httpd• どっちでも OK
7/27
daemon
• 引数で指定したプログラムを daemon として実行
• daemon 化するわけではなく、既存プロセスチェック、起動チェック、表示を簡単に行うためのもの。
• サービス名のあとに ... で待たされて ok とかでるのはこの関数呼んでるだけだったりする
8/27
killproc
• killproc [-p pidfile] [ -d delay] {program} [-signal]
• 指定した pidfile のプロセスを殺す
9/27
pidfileofproc
• pidfileofproc {program}
• {program} に該当するプロセス ID を一つだけ表示する
• 内部で __pids_var_run 使ってる
10/27
pidofproc
• pidofproc [-p pidfile] {program}
• {program} が起動してれば 0• Pidfileofproc と名前似てるけど全然違う
11/27
status
• status [-p pidfile] {program}
• 起動スクリプトの status そのもの
• httpd (pid 12345) is running…
12/27
echo_success echo_failure echo_passed echo_warning
• OK / FAILED / PASSED/ WARNING と表示
• あらかじめ定義されたカラーシーケンスが使われる
13-16/27
残り半分頑張れ、俺
update_boot_stage
• /usr/bin/rhgb-client (あれば)を呼び出してる
17/27
successfailurepassedwarning
• OK / FAILED / PASSED/ WARNING と表示
• $BOOTUP と $LSB によって、 echo_xxx を呼び出すかしないか制御
18-21/27
action
• よくわかんない。• たぶん、グラフィックモード起動時用• /etc/rhgb/temp/rhgb-console 弄ったり• /usr/bin/rhgb-client 呼んだり
22/27
strstr
• strstr $1 $2
• $1 に $2 が含まれていれば 0 • そうでなければ 1
• C 言語の strstr と同じ
23/27
confirm
• (Y)es/(N)o/(C)ontinue? [Y] • Y -> 0 • N -> 1 • C-> 2
24/27
get_numeric_dev
• get_numeric_dev [decimal|hex] device
• device の リソース番号を “メジャー番号 :マイナー番号” で表示
25/27
resolve_dm_name
• dmraid 呼び出してごにょごにょしてる。• Software RAID 関連?• よくわからず
26/27
is_ignored_file
• is_ignored_file file
• file が無視すべきファイルなら 0 そうでなければ 1
• 無視対象 : *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave
27/27
おしまい
ありがとうございました
正直しんどかった…