私はOpenSUSEを実行しています。私は通常、対話型の非ログインシェルを使用してコンソールを開き、しばしばログイン後にbash
。を使用してコンパイルするコードをtcsh
書いていますが、実行可能ファイルが失敗したときにコアダンプファイルを作成したいと思います。C
gcc
無制限のコアダンプサイズを手動で選択できることを知っていますが、入力したくありません。
limits coredumpsize unlimited
tcsh
または
ulimit -c unlimited
bash
ユーザーとしてログインするたびに、デフォルトのシェルにあります。
bash
ユーザーおよび/またはでログインするときにコアダンプサイズを自動的に設定する方法はありますかtcsh
?
答え1
いくつかの研究の終わりにこの問題を解決した可能性があります。 UNIXシステムにログインすると、システム上home
のファイルで利用可能なディレクトリの中から選択したシェルに基づくディレクトリに次のようにリダイレクトされました。\etc\passwd
alandella:x:1000:100:alandella:/home/alandella:/bin/bash
非ログインインタラクティブbash
シェルについて説明します。次のようにシェルをbash
実行すると、tcsh
ログイン/ログアウト中に次のファイルが読み込まれます。
~/.login -> Executes cmds at login
~/.tcshrc -> same as ~./bashrc in bash and ~./cshrc in csh
~/.logout -> at logout
~/.tcshrc
したがって、ファイルに次の行を追加するだけです~/.bashrc
。
~/.bashrc -> ulimit -Sc X
~/.tcshrc -> limit coredumpsize X
X
値(kB)またははどこにありますかunlimited
?トリックを実行する必要があります。
時にはファイルを編集するように求められます~/.profile
。私のbash
シェルがログイン時にそれを得たにもかかわらず、私はそれを編集しませんでした。なぜ違いはないのですか?私は常に非ログインシェルを使用しているので、konsoleをダブルクリックして端末を開きました。この~/.profile
ファイルは起動時にログインシェルでのみ選択されます(sh
私は通常は使用しません)。bash
次のファイルを順番に表示します。
.bash_profile -> .bash_login -> .profile
私の場合、最初の2つのファイルは存在せず、ログインシェルを使用するとbash
ソースファイルは存在しません。.profile
メモ。これはrootとして実行する必要があります。
このファイルは、
/etc/security/limits.conf
ユーザーとルートに適切なハード/ソフト制限を設定します。コアダンプサイズが2000kBにハード制限されている場合、それを~/.bashrc
3000kBに変更しても、コアダンプサイズ制限は2000kBのままです。探すlimits.conf
。以下のファイルには、設定を許可する
/etc/pam.d
この行が含まれています。session required pam_limits.so
/etc/security/limits.conf
このファイルには、生成されたコアファイルの書式設定が
/etc/sysctl.conf
含まれていますkernel.core_pattern = core.%e.%p
。ここで、%eは実行可能ファイル名、%pはpidです。