タグ

ブックマーク / blog.at-dk.info (2)

  • Apacheモジュールのアップデート時にrestartは必要か

    Apacheのモジュールをアップデートしたときに通常は再起動を行っていますが、そもそも再起動が必要なのか、gracefulだけで大丈夫だったりしないかということを調べてみました。 Apacheのモジュールロードのタイミング モジュールをロードするコードはこのあたりだろうか。 https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c https://github.com/apache/httpd/blob/2.4.10/modules/core/mod_so.c Apache からは APR の apr_dso_load() を使っているみたいなので、APRの方を覗いてみる。 https://github.com/apache/apr/blob/1.5.1/dso/unix/dso.c 複数のOSをサポートするために

    sassano
    sassano 2015/02/04
  • 共有ライブラリのアップデート時にプロセスの再起動はいつ必要か

    共有ライブラリのアップデート時、対象のライブラリが起動中のプロセスから利用されているかを見て、プロセスの再起動を行うかどうかの判断をしている。 例えばこんなのとかですね。 $ sudo grep libssl.so.1.0.1e /proc/*/maps | cut -d/ -f3 | sort -u | xargs -r -- ps uf プロセスを再起動すれば、更新されたライブラリが使用されるという認識で居るのだけれど、実際にそうなのか調べたことがなかった。 ライブラリをアップデートしたときに、どのタイミングで差し変わるか気になったので調べてみた。 共有ライブラリのサンプル プロセス再起動時 まずは、普通に再起動を行ってみる。 $ ./test Hell World PID is 16856 Press Any Key To Exit... 別のターミナルで maps を参照してみる。

    sassano
    sassano 2014/10/13
  • 1