2011年1月2日日曜日

iOS: launchd

不勉強なので、iOS系のことは全く研究して
いなかったコトを白状しなくてはならない。

とはいえ、Unix系の知識から類推することは全く問題ない。

たとえば launchd って奴がナニもんだったのかという疑問。
inetdもないしinitもないiOSの異常さに気がつくのが遅かった。

opensshが常駐する時点で気がついてなくちゃならんのであるが、
通常inetdが無いのなら…

/usr/sbin/sshd -p22 

なんて設定になっている。しかし、

sshd -i

これは、inetdなんかのスーパーデーモン経由での起動を意味している。
で、スーパーデーモンってのがどこなのか?

調べるのに、 "ps axl" なんてしてみるわけ。

UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
0 7496 1 0 31 0 274780 1292 - S ?? 0:02.07 /usr/sbin/sshd -i

PPID=親のプロセスID番号が 1 ってナニ?

UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
0 1 0 0 31 0 275168 524 - Ss ?? 3:11.26 /sbin/launchd

あーら、あったよ。 launchd !

opensshが入ると、locationd が動かなくなる現象があって launchdで起動、再起動を
やる必要があったのだが、launchdが、socketまで握ってるとは驚いた。

init + inetd = launchd なんだねぇ。

という、iOS/Tiger から導入されているのだとか。

ここ見ても少し勉強します。

0 件のコメント: