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

次の方法でコアファイルの制限サイズが変更されないのはなぜですか?

https://unix.stackexchange.com/a/446428/674の問題を解決するために、https://stackoverflow.com/a/17483998/156458をフォローしましたが、コアファイルの制限サイズが設定されていませんか?

$ sudo sh -c "ulimit -c 1024 && exec su t"

$ ulimit -c
0
  1. この方法で、現在のシェルだけでコアファイルの制限サイズを一時的に変更しますか、それともすべてのユーザーまたは現在のユーザーのすべてのシェルで永続的に変更しますか?

  2. 更新: 元の投稿https://stackoverflow.com/a/17483998/156458およびhttps://unix.stackexchange.com/a/238413/674およびhttps://unix.stackexchange.com/a/169035/674すべて推奨sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"を使用する 。ただし、両方のulimit -c 1024 およびexec su $LOGNAME" sudoによって作成されたシェルにのみ影響します 、それで、コマンドの目的は何ですか? exec su $LOGNAME" また、変更された制限を利用するために意味のあることは何もしません。

注: 問題を回避する方法は他にもありますが、上記の方法が機能しない理由に焦点を当てています。

  1. 新しい制限値を使用するコマンドを、sudoによって実行される
    シェル内に配置する必要があります

    例:

    $ sudo sh -c "ulimit -c 1024 && sleep 100"
    ^Quit
    $ ls
    core
    
  2. /etc/security/limits.confを変更することもできます 。

承認された回答:

マンページによると、ulimit 「シェルとそれによって開始されるプロセスに利用可能なリソースの制御を提供します」。したがって、ulimit 値は現在のシェルに対して有効です。

ulimitを呼び出しています サブシェルで、それが終了すると、デフォルトのulimitに戻ります 値。

[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024

Linux
  1. Linuxで「sshpass」がファイル転送を自動化する正しい方法ではない理由

  2. ファイルが存在する場合にforループの`zip`が機能するのに、存在しない場合は機能しないのはなぜですか?

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

  1. プロセスをフォークすると、ファイルが無限に読み取られるのはなぜですか

  2. .bz2 ファイルの解凍後のサイズを確認する方法はありますか?

  3. bash:ulimit:コア ファイル サイズ:制限を変更できません:操作は許可されていません

  1. Windows が Linux パーティション内のファイルを認識しないのはなぜですか?

  2. chown を使用してディレクトリのグループ所有者を変更することは許可されていません....なぜですか?

  3. /etc/hosts のサイズ制限は?