chrootするとsyslog関連が・・
ふつうのLinuxプログラミングもやっと最後まで終わりました。
で、HTTPサーバを作るところの終わりでchrootするコードを追加するんだけど、chrootするとsyslogに書き込まれなくなるようです。
Cのソースを模倣しているPerlプログラムのほうではdieしてしまう。なんかソケットが開けないらしい。
chroot先の環境に必要なソケットがないってことなのでしょうかね。
[takatoshi@earth gcc]$ sudo ./httpd.pl --port 8000 --chroot --user takatoshi --group users /home/takatoshi/misc/gcc Password: no connection to syslog available - getprotobyname failed for tcp - /dev/log is not a socket - stream /dev/conslog is not writable - console is not writable at ./httpd.pl line 57
Cのほうはエラーは何も出ずにsyslogに書き込まれないだけ。
-
- -
http://takatoshi.dyndns.org/trac/tktsh/browser/LinuxPrograming/trunk/httpd.c?rev=21
http://takatoshi.dyndns.org/trac/tktsh/browser/LinuxPrograming/trunk/httpd.pl?rev=21
-
- -
追記:
わかった。Google Code Searchで調べた。
chrootする前にopenlogしないといけないらしい。
でもsyslogに記載される時間がローカル時間じゃなくなった。。
http://takatoshi.dyndns.org/trac/tktsh/changeset/22