#linux #linux内核 #文件描述符
简介
这个小玩意非常神奇~ 最常见的地方
./start.sh > /app/log/id.log 2>&1
这里的2>&1
就是文件描述符(file descriptor)
- 1 :表示stdout 标准输出
- 2 :表示stderr 标准错误
- & : 等同于
2>&1
的含义就是 错误输出重定向为标准输出
fd的常见值以及范围
在[[…/specification/POSIX|POSIX]] 中 有对一些值进行定义
- 0 : 标准输入 stdin
- 1 : 标准输出 stdout
- 2 : 标准错误 stderr
每个进程打开一个文件就有一个值对应 例如
举个栗子
使用vi编辑器打开一个文件。保持开启
使用新的窗口搜索vi的进程号
就可以看到文件了
这个值理论内存多少开多少个文件,实际上是有限制的。
最大值查看方法
系统级:
# 查看值
sysctl -a | grep fs.file-max
# 或者
cat /proc/sys/fs/file-max
# 临时更改一下
sysctl -w fs.file-max=xxxx
#永久更改
vi /etc/sysctl.conf
#### 添加
fs.file-max=xxxx
### 使其生效
sysctl -p
用户级:
# 当前用户的限制
ulimit -n
# 临时修改 session断开会恢复原来的设置值。
ulimit -SHn xxxx
# 永久修改
vi /etc/security/limits.conf
###修改以下值就行
hard nofile xxxx
soft nofile xxxx