技术文章 > PHP >  PHP教程 > 正文

php中unable to fork报错怎么解决

 

今天小编遇到一个问题,当调用了system方法,并且执行了shell脚本,开始的时候,一切都非常正常,但是当程序运行后一段时间,出现了显示unable to fork的报错,这个是什么原因呢,后来小编排查了下,主要是因为达到用户的进程上限了,下面小编给大家介绍下解决方式。

限制linux用户的进程数

修改以下文件

vi /etc/security/limits.conf
vpsee hard nproc 32
@student hard nproc 32
@faculty hard nproc 64

ulimit 不带 -H 和 -S 参数的时候同时设置 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

查看各系统用户的进程数

ps h -Led -o user | sort | uniq -c | sort -n

      2 nobody

      3 redis

     34 www

     64 mysql

174 root

确定某用户的进程数的分布情况

ps -o nlwp,pid,lwp,args -u username | sort -n

如果想解决就是需要我们避免用system exec等系统函数,改用其他实现,好啦,大家赶快尝试下吧~

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  python中raise是什么
  python中PySnooper怎么用
相关视频章节
  os & sys 模块使用
  包的使用
  第三方开源模块的安装&使用
  自定义模块
  模块介绍和调用方式
作者信息
视频教程分类