平时爬虫的时候都IDLE上有输出,当把脚本放在服务器上时,断开SSH连接就没了,这时候需要使用nohup 命令来实现后台运行程序。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂断的意思( no hang up) 【来自百度百科】
tail命令:用于显示指定文件末尾内容
-f 表示 循环读取
ps命令:显示进程 【命令详解】
本次使用-ef 功能(e显示所有程序,f显示UID)
grep命令:匹配搜索文本【命令详解】
举个栗子:
nohup python -u test.py > test.log 2>&1 &
其中:
0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error)
2>&1 是表示错误和输出一起重定向
test.log 将输出都放进该文件
最后一个&表示在后台运行
使用-u参数,这样将标准输出的结果不经缓存直接输出到日志文件【参考资料:解析python 命令的-u参数】
当重新连接终端时,回到test.log的目录下使用命令即可实时查看当前进度:
tail -f test.log
查看当前python脚本程序运行状态:
ps -ef|grep python
结束脚本的运行:
kill [uid]
原创文章,作者:Tingwep,如若转载,请注明出处:https://tingwep.cn/linux/id=120