➢ Too many open files以及ulimit的用法
Too many open files
是一个常见的错误,通常是由于系统配置或程序打开过多文件原因导致。这个问题常常又与ulimit
相关。关于ulimit
的用法有不少坑,本文将遇到的坑予以梳理。
Too many open files
是一个常见的错误,通常是由于系统配置或程序打开过多文件原因导致。这个问题常常又与ulimit
相关。关于ulimit
的用法有不少坑,本文将遇到的坑予以梳理。
有些情况下,两个不连通的系统很难传递文件,或者流程很麻烦(比如我司,生产环境两个服务器传文件,必须让领导审批,有时候为了快速传递一个小文件,可能要个把小时的流程)。幸亏,在客户端可以同时ssh两台机器。下面介绍一种base64+终端字符复制的方式跨系统传文件。
新搭建了一个Spring项目,在本地IDE启动测试没有问题,但通过maven-shade插件,将整个工程打包为一个fat jar放在服务器上运行,竟然报XML中的beans元素定义不存在:
cvc-elt.1: Cannot find the declaration of element 'beans'.
这种错误,之前出现过,经常是写错命名空间。但这一次本地IDE启动没有问题,说明是环境问题。而两者的差别主要在于maven-shade的打包方式。经排查原因整理如下。
拿到了一台新笔记本,决定将其定制为Linux环境的主力开发机,下面记录一下主要配置和安装。后续会持更新和补充。
Shell 中若当前脚本只是作为一个包装器(wrapper),需要把所有位置参数继续传递给实际的脚本或函数。这时候,可以选择特殊参数完成:艾特符号$@
和星号 $*
,它们的基本含义是扩展为所有位置参数。多数情况下,使用起来都没什么区别,但不追究明白很容易出现bug,下面举例说明。
遇到不熟悉的 Linux 命令,除了上网搜外,最好是查看系统自带的帮助文档。一来,这是第一手资料,肯定是最准确的;二来,相对网上东一榔头西一棒子的解释,更具有系统性。
虽然 man
命令非常简单,但也会碰到一些疑惑,下面我总结了一下,让以后使用 man
更游刃有余。
Java 开发的后台应用,通常是保持7x24小时运行的,但遇到版本变更或其他原因,需要停止应用,如果粗暴的停止,可能导致交易损失。如何避免停机带来的交易损失呢?下面是我最近的项目的实践经验总结。
总的思想是:从最外层依次向内层,逐层关闭服务。