2017-03-17 13 views
0

私は特定のpidのコアダンプを生成しようとしています。 ulimitを使ってコアファイルのサイズ制限を変更しようとしましたが、/ proc/self/limits(シェルの場合)でのみ変更されます。/proc/<pid>/limitsファイルをlinuxで編集するには?

どうすれば特定のpidに対して編集できますか? Bascially i "が最大コアファイルサイズ=無制限"

注変更する必要があります。

1)当社のLinux版はprlimitを持っていけません。

2)であっても、以下のコマンドdidntはヘルプ

 echo -n "Max core file size=unlimited:unlimited" > /proc/1/limits 

おかげで、私はいつものulimitコマンドでこれを行う

答えて

0

:私のLinuxディストリビューションでは

$ ulimit -c unlimited 

(16.04をUbuntuの)、コアファイルはこのディレクトリに残されます:

/var/lib/systemd/coredump/ 
お使いのディストリビューションがsystemdに基づいている場合は

は、セットアップをすることができ、このファイルにパターンを変性することにより、このディレクトリ:/ procの/ SYSに関連

$ man 5 core 

チェック情報:

$ cat /proc/sys/kernel/core_pattern 
+0

ulimitは私の場合はシェルである自己プロセス制限のみを変更します。私はPID 1のために編集したいです。 –

+0

なぜあなたはPID 1にこれが必要ですか?シェルでバイナリを実行すると、そのシェルは起動したプロセスの責任を負うため、initプロセスを変更してコアファイルをダンプしないでください。実行する前に、バイナリを起動するシェルのulimitを変更する必要があります。 – aicastell

+0

私は、PID 1がすべてのプロセスの親であるlinux上で実行されているボードからコアダンプを収集したいと思います。 –

0

は、この情報をお読みください/ kernel/core_pattern。

前述のように、すべてのコアファイルがダンプされるディレクトリを定義し、このファイルの内容を "echo"コマンドで変更することができます。これは、ダンプされたプロセスのPIDのための%eは、実行可能ファイル名のパターンで/var/log/dumps/core.%e.%p、および%Pパターン上のすべてのコアをダンプする

$ echo "/var/log/dumps/core.%e.%p" > /proc/sys/kernel/core_pattern 

:例えば。

これで自分のニーズをカスタマイズすることができたらうれしいことです。

関連する問題