2 >&1 重新定向
$ command > file 2>&1
1 => stdout
2 => stderr
0 => stdin
换言之 2>1 代表将stderr重定向到当前路径下文件名为1的regular file中,而2>&1代表将stderr重定向到文件描述符为1的文件(即/dev/stdout)中,这个文件就是stdout在file system中的映射,而&>file是一种特殊的用法,也可以写成>&file,二者的意思完全相同,都等价于>file 2>&1
,此处&>或者>&视作整体,分开没有单独的含义
例子:
$ find /etc -names "*.txt" >list 2>&1
从左往右执行,执行到 >list,此时的 stdout 为 list;而执行到 2>&1,表示 stderr 重定向到 stdout,这里也就是 list 文件
如果后台默认运行
nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &
nohup 使用
用途:不挂断地运行命令
语法:nohup Command [ Arg … ] [ & ]
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
ps -ef
ps -aux|grep chat.js
a:显示所有程序
u:以用户为主的格式来显示
x:显示所有程序,不以终端机来区分
ps -aux|grep chat.js| grep -v grep
提取进程的PID
ps -aux|grep chat.js| grep -v grep | awk '{print $2}'
查看具体的端口:
lsof -i:8090
netstat -nap
netstat -anp命令简单说明:
-a,显示所有
-n,不用别名显示,只用数字显示
-p,显示进程号和进程名
![](https://img.haomeiwen.com/i17969152/1435ee9d2ea59105.png)
第一个红色部分,一个叫“j1600_hi3516a”的进程,正在监听554端口,“LISTEN”表示监听
第二红色一行,说明对于“j1600_hi3516a”进程,外部有个“60177”端口,连接了它的“554”端口,“ESTABLISHED”表示已连接
第二个红色二行,说明对于“live555ProxySe”进程,外部有个“554”端口,连接了它的“60177”端口,“ESTABLISHED”表示已连接
这说明了,“j1600_hi3516a”进程和“live555ProxySe”进程都在本机运行,且两者建立了连接。
网友评论