nohup
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
退出状态:该命令返回下列出口值:
126
可以查找但不能调用 Command 参数指定的命令。
127
nohup 命令发生错误或不能查找由 Command 参数指定的命令。
否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
&
用途:在后台运行
一般两个一起用 nohup command &
例子:
nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &
查看运行的后台进程
jobs -l
jobs 命令只看当前终端生效的,关闭终端后,在另一个终端 jobs 已经无法看到后台跑得程序了,此时利用 ps(进程查看命令)
ps -ef
ps -aux|grep chat.js
a:显示所有程序
u:以用户为主的格式来显示
x:显示所有程序,不以终端机来区分
注:
用 ps -def | grep
查找进程很方便,最后一行总是会 grep 自己
用 grep -v
参数可以将 grep 命令排除掉
ps -aux | grep xxx | grep -v grep
aux 输出格式
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- USER: 行程拥有者
- PID: pid
- %CPU: 占用的 CPU 使用率
- %MEM: 占用的记忆体使用率
- VSZ: 占用的虚拟记忆体大小
- RSS: 占用的记忆体大小
- TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
- D: 无法中断的休眠状态 (通常 IO 的进程)
- R: 正在执行中
- S: 静止状态
- T: 暂停执行
- Z: 不存在但暂时无法消除
- W: 没有足够的记忆体分页可分配
- <: 高优先序的行程
- N: 低优先序的行程
- L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
- START: 行程开始时间
- TIME: 执行的时间
- COMMAND:所执行的指令
再用 awk 提取一下 进程ID
ps -aux | grep chat.js | grep -v grep | awk '{print $2}'
后台日志输出到文件
关于如何将后台日志输出到文件,可看本博客前面发的文章:
Linux定时任务crontab将错误日志与正确输出写入到文件
如果某个进程起不来,可能是某个端口被占用
查看使用某端口的进程
lsof -i:8090
netstat -ap|grep 8090
查看到进程 id 之后,使用 netstat 命令查看其占用的端口
netstat -nap|grep 7779
终止后台运行的进程
kill -9 进程号
评论 (0)