錯誤:bash: fork: Resource temporarily unavailable

在路上發表於2019-02-16

在linux系統下,用php的 pcntl_fork 建立子程式時報錯:bash: fork: Resource temporarily unavailable, 錯誤本質是Linux作業系統無法建立更多的程式,導致出錯;
因此,解決辦法是修改Linux允許建立多個子程式;
使用 ulimit -a 檢視當前系統的引數:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 256
pipe size            (512 bytes, -p) 1
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 709
virtual memory          (kbytes, -v) unlimited

系統允許建立的最大數量程式是max user processes 這個引數,我們只要把這個引數修改即可,兩種方式:

  • 當前終端程式有效,重新登入仍然啟用預設值:

    ulimit -u 4096
  • 永久生效,修改/etc/seurity/limits.d/90-nproc.conf

相關文章