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
-
この方法で、現在のシェルだけでコアファイルの制限サイズを一時的に変更しますか、それともすべてのユーザーまたは現在のユーザーのすべてのシェルで永続的に変更しますか?
-
更新: 元の投稿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"
また、変更された制限を利用するために意味のあることは何もしません。
注: 問題を回避する方法は他にもありますが、上記の方法が機能しない理由に焦点を当てています。
-
新しい制限値を使用するコマンドを、sudoによって実行される
シェル内に配置する必要があります例:
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
-
/etc/security/limits.conf
を変更することもできます 。
承認された回答:
マンページによると、ulimit
「シェルとそれによって開始されるプロセスに利用可能なリソースの制御を提供します」。したがって、ulimit
値は現在のシェルに対して有効です。
ulimit
を呼び出しています サブシェルで、それが終了すると、デフォルトのulimit
に戻ります 値。
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024