php中unable to fork報錯簡單解決方法
今天小編遇到一個問題,當(dāng)調(diào)用了system方法,并且執(zhí)行了shell腳本,開始的時候,一切都非常正常,但是當(dāng)程序運行后一段時間,出現(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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析PHP 使用curl提交json格式數(shù)據(jù)
本篇文章是對PHP中使用curl提交json格式數(shù)據(jù)的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下2013-06-06深入解析PHP中foreach語句控制數(shù)組循環(huán)的用法
這篇文章主要介紹了深入解析PHP中foreach語句控制數(shù)組循環(huán)的用法,是PHP入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-11-11