30
/etc/rc.d/init.d/ functions /etc/rc.d 配配配配配配配配配配配配配配 2011/12/09 do_aki

Functions

  • Upload
    doaki

  • View
    1.296

  • Download
    0

Embed Size (px)

DESCRIPTION

CentOS5.6 の /etc/rc.d/init.d/ functions ぜん27

Citation preview

Page 1: Functions

/etc/rc.d/init.d/functions

/etc/rc.d 配下とかのリーディング勉強会2011/12/09

do_aki

Page 2: Functions

| 所属 | > 株式会社もしも    (ドロップシッピング・アフィリエイト ASP )

| 仕事 | > インフラ(サーバ管理)兼  Web アプリケーション開発

| 出現 | > 渋谷・山手線沿線| 特性 | > PHPer

do_aki ( どぅーあき )

http://do-aki.net/

Page 3: Functions

/etc/rc.d/init.d/

functions って何 ?

Page 4: Functions

/etc/rc.d/init.d/functions

. /etc/init.d/functions

. /etc/rc.d/init.d/functions  ←実体はこっち

起動スクリプトの先頭によく書いてあるアレ

Page 5: Functions

/etc/rc.d/init.d/functions

• Shell Script

• 起動スクリプトでよく利用される処理の関数群 ( ユーティリティ )

• CentOS 5.6 では、 initscripts パッケージに含まれる

Page 6: Functions

全 27 function を紹介してみる

※ CentOS 5.6 の場合

Page 7: Functions

注意事項

• CentOS 5.6 での内容を元にしてます• マイナーバージョンの違いでも若干異なる

ようです• 6 系だと 5,6 くらい関数増えてるし

• ってか、激しく読みづれぇ… (;´Д ` )

Page 8: Functions

fstab_decode_str

• # Interpret escape sequences in an fstab entry

• fstab のエスケープシーケンスを解釈 ???

• 「 fstab-decode echo “$1” 」を実行しているだけ

1/27

Page 9: Functions

checkpid

• checkpid pid1 pid2 ...• 指定した process id のプロセスが立ち

上がっているなら 0 を返す• 複数指定した場合は、いずれかの pid が

立ち上がっていれば 0 • それ以外は 1

2/27

Page 10: Functions

__readlink

• シンボリックリンクの参照先を表示

• ls -bl "$@" 2>/dev/null| awk '{ print $NF }‘

3/27

Page 11: Functions

__umount_loop

• umount 完了するまで待つ感じ?

• よく分からなくて追ってない

4/27

Page 12: Functions

__umount_loopback_loop

• __umount_loop と似てるけど、こっちは loopback デバイス用に特化されてる

• ってコメントに書いてありました

5/27

Page 13: Functions

__pids_var_run

• __pids_var_run {program} [pidfile]

• pidfile (指定のない場合は、 /var/run/{program} )に含まれる pid を $pid にセット

6/27

Page 14: Functions

__pids_pidof

• __pids_pidof {program}

• {program} に該当するプロセスを pidof • 無ければ、 {program} のベース名で pidof

• __pids_pidof httpd• __pids_pidof /usr/sbin/httpd• どっちでも OK

7/27

Page 15: Functions

daemon

• 引数で指定したプログラムを daemon として実行

• daemon 化するわけではなく、既存プロセスチェック、起動チェック、表示を簡単に行うためのもの。

• サービス名のあとに ... で待たされて ok とかでるのはこの関数呼んでるだけだったりする

8/27

Page 16: Functions

killproc

• killproc [-p pidfile] [ -d delay] {program} [-signal]

• 指定した pidfile のプロセスを殺す

9/27

Page 17: Functions

pidfileofproc

• pidfileofproc {program}

• {program} に該当するプロセス ID を一つだけ表示する

• 内部で __pids_var_run 使ってる

10/27

Page 18: Functions

pidofproc

• pidofproc [-p pidfile] {program}

• {program} が起動してれば 0• Pidfileofproc と名前似てるけど全然違う

11/27

Page 19: Functions

status

• status [-p pidfile] {program}

• 起動スクリプトの status そのもの

• httpd (pid 12345) is running…

12/27

Page 20: Functions

echo_success echo_failure echo_passed echo_warning

• OK / FAILED / PASSED/ WARNING と表示

• あらかじめ定義されたカラーシーケンスが使われる

13-16/27

Page 21: Functions

残り半分頑張れ、俺

Page 22: Functions

update_boot_stage

• /usr/bin/rhgb-client (あれば)を呼び出してる

17/27

Page 23: Functions

successfailurepassedwarning

• OK / FAILED / PASSED/ WARNING と表示

• $BOOTUP と $LSB によって、 echo_xxx を呼び出すかしないか制御

18-21/27

Page 24: Functions

action

• よくわかんない。• たぶん、グラフィックモード起動時用• /etc/rhgb/temp/rhgb-console 弄ったり• /usr/bin/rhgb-client 呼んだり

22/27

Page 25: Functions

strstr

• strstr $1 $2

• $1 に $2 が含まれていれば 0 • そうでなければ 1

• C 言語の strstr と同じ

23/27

Page 26: Functions

confirm

• (Y)es/(N)o/(C)ontinue? [Y] • Y -> 0 • N -> 1 • C-> 2

24/27

Page 27: Functions

get_numeric_dev

• get_numeric_dev [decimal|hex] device

• device の リソース番号を “メジャー番号 :マイナー番号” で表示

25/27

Page 28: Functions

resolve_dm_name

• dmraid 呼び出してごにょごにょしてる。• Software RAID 関連?• よくわからず

26/27

Page 29: Functions

is_ignored_file

• is_ignored_file file

• file が無視すべきファイルなら 0 そうでなければ 1

• 無視対象 : *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave

27/27

Page 30: Functions

おしまい

ありがとうございました

正直しんどかった…