Untuk mengatasi masalah di https://unix.stackexchange.com/a/446428/674, saya mengikuti https://stackoverflow.com/a/17483998/156458, tetapi tidak menetapkan ukuran batas file inti?
$ sudo sh -c "ulimit -c 1024 && exec su t"
$ ulimit -c
0
-
Apakah cara ini mengubah ukuran batas file inti sementara hanya untuk shell saat ini, atau secara permanen untuk semua shell semua pengguna atau pengguna saat ini?
-
Pembaruan: Posting asli https://stackoverflow.com/a/17483998/156458 dan https://unix.stackexchange.com/a/238413/674 dan https://unix.stackexchange.com/a/169035/674 semua direkomendasikan menggunakan
sudo sh -c "ulimit -c 1024 && exec su $LOGNAME"
. Tapi keduanyaulimit -c 1024
danexec su $LOGNAME"
hanya mempengaruhi shell yang dibuat olehsudo
, jadi apa tujuan dari perintah itu?exec su $LOGNAME"
juga tidak melakukan sesuatu yang berarti untuk memanfaatkan batas yang diubah.
Catatan: Saya fokus pada mengapa cara di atas tidak berhasil, meskipun ada cara lain untuk mengatasi masalah:
-
Saya harus meletakkan perintah yang menggunakan nilai batas baru di dalam
shell yang dijalankan oleh sudomisalnya
$ sudo sh -c "ulimit -c 1024 && sleep 100" ^Quit $ ls core
- Saya juga dapat mencoba mengubah
/etc/security/limits.conf
.
Jawaban yang Diterima:
Menurut halaman manual, ulimit
"menyediakan kontrol atas sumber daya yang tersedia untuk shell dan proses yang dimulai olehnya". Jadi ulimit
nilai valid untuk shell saat ini.
Anda menggunakan ulimit
dalam subkulit, dan ketika itu berakhir, Anda kembali ke ulimit
default nilai.
[[email protected] ~]# ulimit -c
0
[[email protected] ~]# ulimit -c 1024
[[email protected] ~]# ulimit -c
1024