Saya memiliki proses yang berjalan sebagai pengguna gearman dan saya ingin mengubah open files
untuk menghindari kesalahan buruk ini:
GALAT 2014-09-12 17: 49: 14.000000 [utama] terima (Terlalu banyak file terbuka) -> libgearman-server / gearmand.cc: 788
Bagaimana saya bisa menjalankan ulimit sebagai pengguna lain di Ubuntu dan mengubah file yang terbuka? Saat ini saya tidak masuk sebagai tukang gigi tetapi saya memiliki akses root. Saya mencoba melakukan ini:
su gearman --shell /bin/bash --command "ulimit -n"
seperti yang direkomendasikan di sini tetapi tidak ada yang mendapatkan keluaran:
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Ketika Anda menjalankan
ulimit
perintah itu hanya mempengaruhi proses yang sedang berjalanulimit
(shell) dan semua subproses. Jadi ketika Anda menjalankanbash --command "ulimit -n"
, itu hanya mempengaruhi jumlah file yang terbuka untuk instance dari bash, kemudian bash keluar, sehingga proses di masa depan tidak terpengaruh.Jadi untuk mencapai apa yang Anda inginkan (untuk meningkatkan batas file terbuka untuk proses nyata Anda), mungkin lebih masuk akal untuk mengedit
limits.conf
untuk meningkatkan batas file terbuka untuk pengguna perkakas khusus Anda.Lihat contoh limit.conf di tempat lain atau di sini .
sumber
more /proc/<proc_id>/limits
... mungkin layak ditambahkan untuk menjawab/etc/security/limits.conf
Coba gunakan
su - <USERNAME> -c ulimit' -Hn'
. Saya baru saja mengujinya pada CEntOS 7, dan berfungsi.sumber
<USERNAME>
tidak dapat masuk (memiliki shell nologin).