今天小編遇到一個問題,當調(diào)用了system方法,并且執(zhí)行了shell腳本,開始的時候,一切都非常正常,但是當程序運行后一段時間,出現(xiàn)了顯示unable to fork的報錯,這個是什么原因呢,后來小編排查了下,主要是因為達到用戶的進程上限了,下面小編給大家介紹下解決方式。
限制linux用戶的進程數(shù)
修改以下文件
vi /etc/security/limits.conf
vpsee hard nproc 32
@student hard nproc 32
@faculty hard nproc 64
ulimit 不帶 -H 和 -S 參數(shù)的時候同時設(shè)置 Hard 和 Soft
ulimit -u
65535
ulimit -u 65534
ulimit -u 65535
-bash: ulimit: max user processes: cannot modify limit: Operation not permitted
ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 30493
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 65534
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
查看各系統(tǒng)用戶的進程數(shù)
ps h -Led -o user | sort | uniq -c | sort -n
2 nobody
3 redis
34 www
64 mysql
174 root
確定某用戶的進程數(shù)的分布情況
ps -o nlwp,pid,lwp,args -u username | sort -n
問題原因分析:
問題原因
system調(diào)用會fork新的進程,因為每個用戶有最大進程數(shù)限制,簡單的說就是達到用戶的進程上限了
到此這篇關(guān)于php中unable to fork報錯簡單解決方法的文章就介紹到這了,更多相關(guān)php中unable to fork報錯怎么解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- php中pcntl_fork創(chuàng)建子進程的方法實例
- PHP多進程之pcntl_fork的實例詳解
- PHP使用pcntl_fork實現(xiàn)多進程下載圖片的方法
- php pcntl_fork和pcntl_fork 的用法