ssh鏈接報錯Write failed: Broken pipe Resource temporarily unavailable

問題描述

  • 使用root鏈接服務器正常,切換普通用戶鏈接報錯
    • 具體報錯以下:Write failed: Broken pipe
    • 或者:failed to execute /bin/bash: Resource temporarily unavailable
  • 使用root切換普通用戶也報錯
    • 具體報錯以下:su: cannot set user id: Resource temporarily unavailable
  • 該普通用戶運行java程序

問題緣由

  • 排查是服務器系統普通用戶默認文件描述符配置過小

問題處理

  • nproc(單個用戶可用的最大進程數量)
    • 主要修改系統 nproc值,便可解決問題,
    • 1.在limit文件追加下面兩行;
      vi  /etc/security/limits.conf  
      * soft nofile  65535
      * hard nofile 65535java

    • 1.1修改/etc/pam.d/login;
      vi /etc/pam.d/login
      session required pam_limits.so
      告訴Linux在用戶完成系統登陸後,應該調用pam_limits.so模塊來設置系統對該用戶可以使用的各類資源數量的最大限制(包括用戶可打開的最大文件數限制)。
      而pam_limits.so模塊就會從/etc/security/limits.conf文件中讀取配置來設置這些限制值centos

    • 2.修改 nproc 默認值1024 到65535
      • centos 7.X之後新增了一個/etc/security/limits.d/20-nproc.conf 文件,用於控制nproc,這裏面的默認配置是
        vi /etc/security/limits.d/20-nproc.conf
        * soft nproc  65535
        * hard nproc  65535bash

      • centos 6.X之後新增了一個/etc/security/limits.d/90-nproc.conf 文件,用於控制nproc,這裏面的默認配置是
        vi /etc/security/limits.d/90-nproc.conf
        * soft nproc  65535
        * hard nproc  65535服務器

參考鏈接

相關文章
相關標籤/搜索