fork: retry: 资源暂时不可用
方法一:(临时解决,前提是命令还能用)
用root登录,执行命令:
ps aux | grep 出错命令名称或者名称一部分 | awk '{print $2}' | xargs kill -9
如:
ps aux | grep insert_pos | awk '{print $2}' | xargs kill -9
用户连接数:ulimit -u 102400
堆栈大小:ulimit -s 102400
文件打开数:ulimit -n 102400
方法二:(临时解决,前提是命令还能用)
出现这个问题可能是有另外一个程序正在运行,导致资源被锁不可用。而导致资源被锁的原因可能是上次运行安装或更新时没有正常完成,进而出现此状况
#处理杀死之前的进程,释放系统锁
ps -e|grep apt-get
显示
6965 ? 00:00:01 apt-get
然后执行
sudo kill 6965
强制解锁
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
rm /var/lib/dpkg/lock-frontend
下面是我查了好多文档唯一可行的办法,因为Ubuntu18和之前的版本不一样了
方法三:(永久修改,这个办法是输入任何命令都不好使需要重启的选择)
添加如下内容:
注意,这里是每一个用户都要配置
vim /etc/security/limits.conf
* soft nproc 102400
* hard nproc 102400
* soft nofile 102400
* hard nofile 102400
* soft stack 102400
* hard stack 102400
root soft nproc 102400
root hard nproc 102400
root soft nofile 102400
root hard nofile 102400
root soft stack 102400
root hard stack 102400
* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
- 的意思为soft 和hard 全部限制
hard和soft的区别:
-H :hard limit ,严格的设定,必定不能超过这个设定的数值
-S :soft limit ,警告的设定,可以超过这个设定值,但是若超过则有警告信息
换个窗口查看:
root@iZ2zeiflf48wp1ved7nnnmZ:~# 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) 241390
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 102400
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 102400
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
添加 common-session
在 /etc/pam.d/common-session 和/etc/pam.d/common-session-noninteractive 文件中,都添加下面内容:
session required pam_limits.so
修改 /etc/systemd/system.conf 和/etc/systemd/user.conf文件
如果不修改这两个文件的话,重启后当前登录的普通用户不会超过这个限制(影响的是登录桌面的用户)。
修改完成后,如果是远程链接,重新链接即可生效; 如果是桌面环境,重启后生效
DefaultLimitNOFILE=102400
DefaultLimitSTACK=102400
DefaultLimitNPROC=102400
#临时改变栈空间大小:ulimit -s 102400, 即修改为100M
ulimit -s ulimited
ulimited就是不限制