GNU/Linux >> Linux の 問題 >  >> Linux

プロセスごとに設定可能なコア ダンプ ディレクトリ

いいえ、プロセスごとに設定することはできません。コア ファイルは、プロセスの現在の作業ディレクトリ、またはパターンにディレクトリが含まれている場合は /proc/sys/kernel/core_pattern で設定されたディレクトリにダンプされます。

Apache の CoreDumpDirectory はハックであり、Apache はコア ダンプを引き起こすすべてのシグナルのシグナル ハンドラを登録し、そのシグナル ハンドラで現在のディレクトリを変更します。

/* handle all varieties of core dumping signals */
static void sig_coredump(int sig)
{
    apr_filepath_set(ap_coredump_dir, pconf);
    apr_signal(sig, SIG_DFL);
#if AP_ENABLE_EXCEPTION_HOOK
    run_fatal_exception_hook(sig);
#endif
    /* linuxthreads issue calling getpid() here:
     *   This comparison won't match if the crashing thread is
     *   some module's thread that runs in the parent process.
     *   The fallout, which is limited to linuxthreads:
     *   The special log message won't be written when such a
     *   thread in the parent causes the parent to crash.
     */
    if (getpid() == parent_pid) {
        ap_log_error(APLOG_MARK, APLOG_NOTICE,
                     0, ap_server_conf,
                     "seg fault or similar nasty error detected "
                     "in the parent process");
        /* XXX we can probably add some rudimentary cleanup code here,
         * like getting rid of the pid file.  If any additional bad stuff
         * happens, we are protected from recursive errors taking down the
         * system since this function is no longer the signal handler   GLA
         */
    }
    kill(getpid(), sig);
    /* At this point we've got sig blocked, because we're still inside
     * the signal handler.  When we leave the signal handler it will
     * be unblocked, and we'll take the signal... and coredump or whatever
     * is appropriate for this particular Unix.  In addition the parent
     * will see the real signal we received -- whereas if we called
     * abort() here, the parent would only see SIGABRT.
     */
}

Linux
  1. UNIX / Linux:プロセスにシグナルを送信する 3 つの方法

  2. Linux シグナルの基礎 – パート I

  3. コアがダンプされましたが、コア ファイルが現在のディレクトリにありませんか?

  1. プロセス/サービスごとに iptables ルールを作成する

  2. 浮動小数点例外コア ダンプ

  3. プロセスごとのプライベート ファイル システムのマウント ポイント

  1. シグナルを受け取った場合、マルチスレッドの Linux プロセスはどうなりますか?

  2. プロセスごとの CPU 使用率を記録するにはどうすればよいですか?

  3. プロセスごとのディスク I/O 使用率を確認する方法は?