nohup方法(不挂起的意思)
基本用法
# 进入要运行的py文件目录
nohup python -u test.py > test.log 2>&1 &
含义解释
- nohup 不挂起的意思 python test.py python 运行test.py文件
- -u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟
- -> test.log 将输出日志保存到这个log中
- 2>1 2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
- 2>&1 &与1结合就代表标准输出了,就变成错误重定向到标准输出.
- & 最后一个& ,代表该命令在后台执行
命令运行后的提示示例
[1] 2880 # 代表进程2880中运行。如果是8009则表示进程8009在运行
一些查看指令
运行之后,查看nohup命令下运行的所有后台进程:
jobs
重新登录查看当前用户后台运行的所有进程:
ps -ux
重新登录查看后台运行的所有进程:
ps -aux
查看后台运行的所有python 进程:
ps aux |grep python 或者 ps -ef | grep python
删除进程
kill -9 [进程id] # -9 的意思是强制删除
注意
程序在后台运行了之后,不能直接把ssh给关了。因为一但ssh客户端中断,这个进程也就直接挂了。所以需要用exit来退出远程连接。
ps指令
1.ps
ps命令是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和它所运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。总之大部分信息都是可以通过执行该命令得到的。ps命令最常用来监控后台进程的工作情况,因为后台进程是不和屏幕、键盘这些标准输入/输出设备进行通信的,所以如果需要检测后台情况,就需要使用ps命令了。它的格式如下所示:
格式:ps [选项]
其主要选项如下。
-a:显示系统中所有进程的信息。
-e:显示所有进程的信息。
-f:显示进程的所有信息。
-l:以长格式显示进程信息。
-r:只显示正在运行的进程。
-u:显示面向用户的格式(包括用户名、CPU及内存的使用情况等信息)。
-x:显示所有非控制终端上的进程信息。
-p:显示由进程ID指定的进程信息。
-t:显示指定终端上的进程信息。