Linux 服务器Python后台运行服务(ssh断开不退出)

前言

最近用 tornado 搭建了一个图像识别的微服务,部署到CentOS7上去,比较方便的事 tornado自带web服务器,所以部署的时候只需要用python 运行即可


命令1(记录所有日志): nohup python -u tornado_server.py > test.log 2>&1 &
命令2(只记录错误日志):nohup python -u tornado_server.py >/dev/null 2>error.log 2>&1 &
命令3(不记录任何日志):nohup python -u tornado_server.py >/dev/null 2>&1 &

一、命令解释:
  1. nohup 不挂断的意思
    python tornado_server.py tornado服务的启动脚本

  2. -u 代表程序不启用缓存,也就是把输出直接放到log中,没这个参数的话,log文件的生成会有延迟

  3. p.log 将输出日志保存到这个log中

  4. 2>1 2与> 结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;

  5. 2>&1 换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

  6. & 最后一个& ,代表该命令在后台执行

PS: 命令运行后显示进程号,还有使用了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

[1]   2880
二、 其它相关命令
  1. 查看 nohub 命令下运行的所有后台进程:jobs

  2. 查看后台运行的所有进程:ps -aux

  3. 查看后台运行的所有python 进程:

    ps aux |grep python
    #或者
    ps -ef | grep python
    
  4. 停止进程 kill -9 [进程id]

你可能感兴趣的:(服务器管理,Python,linux,后台运行命令,python)