このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
debian:debiantips [2015-05-04 17:35] tosihisa@netfort.gr.jp [ufw で samba のポートを開く] |
debian:debiantips [2019-01-20 17:43] (現在) tosihisa@netfort.gr.jp ↷ debiantips から debian:debiantips へページを移動しました。 |
||
---|---|---|---|
行 12: | 行 12: | ||
これは Raspbian の場合ですが,ufw が CIFS と言う名称で定義されていますので,以下のコマンドを実行. | これは Raspbian の場合ですが,ufw が CIFS と言う名称で定義されていますので,以下のコマンドを実行. | ||
+ | |||
+ | / | ||
< | < | ||
# ufw allow CIFS | # ufw allow CIFS | ||
</ | </ | ||
+ | |||
+ | ===== Debian jessie での rsyslog の動き ===== | ||
+ | |||
+ | Debian jessie は systemd が導入されました.このため,Debian jessie では,systemd-journald と,rsyslogd の二つのログプロセスが動作していることになります | ||
+ | (実際二つのログプロセスが動いています) | ||
+ | |||
+ | どれがどう切り分けられているのか,気になったので調べてみました. | ||
+ | |||
+ | 切り分けとして,まずは仕組みの切り分けから進めます. | ||
+ | |||
+ | Linux の syslog(3) は,最終的には /dev/log のソケットに渡されますので,それが systemd-journald で握っているのか,それとも rsyslogd で握っているのかを確認します. | ||
+ | |||
+ | さしあたり,rsyslogd のソースを確認してみます. | ||
+ | |||
+ | rsyslog-8.4.2/ | ||
+ | |||
+ | <code c rsyslog-8.4.2/ | ||
+ | /* defines */ | ||
+ | #ifndef _PATH_LOG | ||
+ | #ifdef BSD | ||
+ | #define _PATH_LOG | ||
+ | #else | ||
+ | #define _PATH_LOG | ||
+ | #endif | ||
+ | #endif | ||
+ | #ifndef SYSTEMD_JOURNAL | ||
+ | #define SYSTEMD_JOURNAL | ||
+ | #endif | ||
+ | #ifndef SYSTEMD_PATH_LOG | ||
+ | #define SYSTEMD_PATH_LOG SYSTEMD_JOURNAL "/ | ||
+ | #endif | ||
+ | ... | ||
+ | /* activate current listeners */ | ||
+ | static inline rsRetVal | ||
+ | activateListeners() | ||
+ | { | ||
+ | ... | ||
+ | listeners[0].sockName = UCHAR_CONSTANT(_PATH_LOG); | ||
+ | if(runModConf-> | ||
+ | listeners[0].sockName = runModConf-> | ||
+ | else if(sd_booted()) { | ||
+ | struct stat st; | ||
+ | if(stat(SYSTEMD_PATH_LOG, | ||
+ | listeners[0].sockName = (uchar*) SYSTEMD_PATH_LOG; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | Linux では,標準ではログのためのソケットは /dev/log ですが,rsyslog では,sd_booted() の戻り値が真の場合,"/ | ||
+ | |||
+ | sd_booted() の実体は,rsyslog-8.4.2/ | ||
+ | |||
+ | <code c rsyslog-8.4.2/ | ||
+ | _sd_export_ int sd_booted(void) { | ||
+ | #if defined(DISABLE_SYSTEMD) || !defined(__linux__) | ||
+ | return 0; | ||
+ | #else | ||
+ | struct stat st; | ||
+ | |||
+ | /* We test whether the runtime unit file directory has been | ||
+ | * created. This takes place in mount-setup.c, | ||
+ | * guaranteed to happen very early during boot. */ | ||
+ | |||
+ | if (lstat("/ | ||
+ | return 0; | ||
+ | |||
+ | return !!S_ISDIR(st.st_mode); | ||
+ | #endif | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | "/ | ||
+ | |||
+ | 要は,rsyslog は,自身で systemd が動いているかを "/ | ||
+ | もしこのディレクトリが存在しているならば,"/ | ||
+ | |||
+ | と言うことを踏まえると,以下のようになるかと思います. | ||
+ | |||
+ | syslog(3)==> | ||
+ | |||
+ | 経路がわかったところで,Debian jessie での systemd-journald と rsyslogd の棲み分けですが, | ||
+ | 私がインストールした Debian jessie では, | ||
+ | "/ | ||
+ | また,/ | ||
+ | |||
+ | Storage=auto は,"/ | ||
+ | |||
+ | http:// | ||
+ | |||
+ | 上記のことから,Debian jessie は,標準では systemd-journald は起動してからの内容を記録しており,永続的なログの記録は,systemd-journald 経由でこれまでどおり rsyslogd が行っていると言えます. | ||
+ | |||
+ | もし,systemd-journald で永続的に記録させたいならば,"/ | ||