【问题标题】:Can't fork process: Resource temporarily unavailable issue无法分叉进程:资源暂时不可用问题
【发布时间】:2018-08-05 19:36:27
【问题描述】:

我在 Mac mini 上使用 macOS 10.12.3 终端时遇到问题

当我尝试运行任何命令时,我会收到以下消息:

can't fork process: Resource temporarily unavailable.

我已经遇到过这样的问题。上次我能够修复它 - 增加进程数量,我的系统看起来像:

sysctl -a | grep maxproc  
kern.maxproc: 2048  
kern.maxprocperuid: 2048  


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) 65536  
pipe size            (512 bytes, -p) 1  
stack size              (kbytes, -s) 8192  
cpu time               (seconds, -t) unlimited  
max user processes              (-u) 2048  
virtual memory          (kbytes, -v) unlimited  

我以为问题已经解决了,但现在我又遇到了这个问题。

这次我能够通过重新启动解决这个问题 - 但每次都重新启动我的 Mac 是非常不可取的。

您有什么建议可以一劳永逸地解决这个问题吗?

【问题讨论】:

    标签: macos terminal macos-sierra


    【解决方案1】:

    不知道为什么你的问题被否决了……


    sudo sysctl kern.tty.ptmx_max=255(或 511,或其他)应该修复它。

    我的默认值(在 El Capitan 中)是 127。(作为 tmux 用户,我需要 不止于此。)

    要了解更多信息:

    sysctl -a | grep max
    ulimit -a
    launchctl limit
    
    cat /private/etc/launchd.conf
    cat /private/etc/sysctl.conf
    
    man 8 sysctl
    

    【讨论】:

    • sysctl | grep max 不起作用:(用法:sysctl [-bdehiNnoqx] name[=value] ... sysctl [-bdehNnoqx] -a
    • kern.tty.ptmx_max: 511 已设置为 511。我可以使用多少最大值?
    【解决方案2】:

    短期解决方案(除了重新启动)是退出未使用的应用程序或关闭未使用的文档或项目。

    【讨论】:

      【解决方案3】:

      重启解决了这个问题。就我而言,我打开了活动监视器,发现“Outlook WebContent”的进程太多了。我退出了 MS Outlook,瞧,终端重新打开,该错误消失了。

      【讨论】:

        【解决方案4】:

        我有过类似的经历,结果发现我每分钟都有一个 cronjob 生成并且没有完成。如果您可以释放足够的资源来运行以下命令,您可以看到重复生成的内容。

        ps -e | awk '{print $4" "$5" "$6}' | sort | uniq -c | sort -n
        

        对我来说,最后几行是这样的:

          15 /Applications/Google Chrome.app/Contents/Frameworks/Google Chrome
          36 (find)  
        1184 (bash)  
        1220 (cron)  
        1221 /usr/sbin/cron
        

        我的回答很简单。 crontab -e 并删除违规行。然后重新启动清除了所有僵尸 crons。

        【讨论】:

          猜你喜欢
          • 2017-02-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-02
          • 2012-04-11
          • 2019-11-11
          • 1970-01-01
          • 2021-02-21
          相关资源
          最近更新 更多