今天小編遇到一個(gè)問(wèn)題,當(dāng)調(diào)用了system方法,并且執(zhí)行了shell腳本,開(kāi)始的時(shí)候,一切都非常正常,但是當(dāng)程序運(yùn)行后一段時(shí)間,出現(xiàn)了顯示unable to fork的報(bào)錯(cuò),這個(gè)是什么原因呢,后來(lái)小編排查了下,主要是因?yàn)檫_(dá)到用戶的進(jìn)程上限了,下面小編給大家介紹下解決方式。
限制linux用戶的進(jìn)程數(shù)
修改以下文件
vi /etc/security/limits.conf
vpsee hard nproc 32
@student hard nproc 32
@faculty hard nproc 64
ulimit 不帶 -H 和 -S 參數(shù)的時(shí)候同時(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)用戶的進(jìn)程數(shù)
ps h -Led -o user | sort | uniq -c | sort -n
2 nobody
3 redis
34 www
64 mysql
174 root
確定某用戶的進(jìn)程數(shù)的分布情況
ps -o nlwp,pid,lwp,args -u username | sort -n
問(wèn)題原因分析:
問(wèn)題原因
system調(diào)用會(huì)fork新的進(jìn)程,因?yàn)槊總€(gè)用戶有最大進(jìn)程數(shù)限制,簡(jiǎn)單的說(shuō)就是達(dá)到用戶的進(jìn)程上限了
到此這篇關(guān)于php中unable to fork報(bào)錯(cuò)簡(jiǎn)單解決方法的文章就介紹到這了,更多相關(guān)php中unable to fork報(bào)錯(cuò)怎么解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- php中pcntl_fork創(chuàng)建子進(jìn)程的方法實(shí)例
- PHP多進(jìn)程之pcntl_fork的實(shí)例詳解
- PHP使用pcntl_fork實(shí)現(xiàn)多進(jìn)程下載圖片的方法
- php pcntl_fork和pcntl_fork 的用法