Karena Ubuntu 14.04 Trusty tidak memiliki util-linux-2.21 (ini adalah 2.20), tidak ada prlimit
perintah CLI untuk digunakan.
Menggunakan Python3.4 + (yang tersedia di Ubuntu 14.04 dan semua versi yang lebih baru) dapat menetapkan batas sumber daya untuk proses yang sedang berjalan. Jalankan sebagai root:
1-liner:
# PID=966
# grep 'open file' /proc/$PID/limits
Max open files 1024 4096 files
# python3 -c "import resource; resource.prlimit($PID, resource.RLIMIT_NOFILE, (2048, 12345))"
# grep 'open file' /proc/$PID/limits
Max open files 2048 12345 files
Atau lebih verbose:
# python3
Python 3.4.3 (default, Nov 28 2017, 16:41:13)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import resource
>>> import os
>>> resource.prlimit(os.getpid(), resource.RLIMIT_NOFILE)
(1024, 4096)
>>> resource.prlimit(os.getpid(), resource.RLIMIT_NOFILE, (1369, 9999))
(1024, 4096)
>>> resource.prlimit(os.getpid(), resource.RLIMIT_NOFILE)
(1369, 9999)
Verifikasi itu berfungsi:
# grep 'open file' /proc/1472/limits
Max open files 1369 9999 files
Perhatikan ini bekerja dengan Linux 2.6.36 atau lebih baru dengan glibc 2.13 atau lebih baru.
gdb
Tekniknya sangat keren. Satu peringatan, tampaknya Anda tidak dapat meningkatkan jumlah file yang terbuka untuk proses non-root melewati batas kerasnya,setrlimit
panggilan mengembalikan -1, dan errno adalah 22 (argumen tidak valid).