linux 脚本执行 总是被killed
line : 777 Killed
这个问题通常是由于系统内存不足(OOM – Out Of Memory)导致的。当系统内存不足时,Linux 的 OOM killer 会强制终止某些进程来释放内存,这就是为什么你看到"Killed"这个提示。
-
首先查看系统内存使用情况:
free -h
-
查看系统日志,确认是否是 OOM 导致:
dmesg | grep -i kill # 或者 journalctl -k | grep -i kill
解决方案:
-
添加交换空间(如果没有的话):
# 创建2GB的交换文件 sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 设置开机自动启用 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
-
如果已经有交换空间,可以增加其大小。
-
对脚本进行优化:
- 确保不要同时运行太多进程
- 重要命令执行前先清理内存:
sync && echo 3 > /proc/sys/vm/drop_caches
-
如果是在小内存VPS上运行,可以尝试:
- 关闭不必要的服务释放内存
- 分步执行脚本,而不是一次性运行所有操作
- 增加服务器内存