【已解决】利用nohup使得Python Flask项目在服务器上后台运行

一、问题: 今天在部署Python Flask项目到线上的时候,在Ubuntu系统的虚拟环境中,运行项目可以正常访问到api,但是在Xshell中,一旦Ctrl+C或者关闭ssh,他就停止了,api再也请求不到了。

二、nohup
1、nohup 是 no hang up 的缩写,就是不挂断的意思。
2、nohup命令:在系统上运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
3、nohup在不规定的情况下,所以输出内容会到nohup.out中。

三、nohup代码
run.py为Flask项目的启动脚本,在python环境中不间断的运行run.py,并且将标准内容和错误内容输出到flask.log这个日志文件中,即请求api若出现报错信息即可通过日志定位到问题

nohup python3 run.py >> /www/wwwroot/log/flask.log 2>&1 &

四、2>&1
0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容
2>&1是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。

五、nohup和&的区别
1、&才是后台运行
2、nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思

  • 10
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: nohup命令可以让我们在后台运行Python命令,即使我们退出终端或关闭SSH连接,Python命令也会继续运行。使用nohup命令的语法如下: nohup python your_script.py & 其中,your_script.py是你要运行的Python脚本的文件名。&符号表示将命令放入后台运行。运行命令后,nohup会将输出重定向到nohup.out文件中,这样我们就可以在需要时查看输出。 ### 回答2: nohup是一个常用的Linux命令,可以将其他命令在后台运行,直到任务完成或手动停止。当我们需要在终端执行一些耗时的任务时,如果不用nohup命令,在终端关闭或者断开连接后,任务也会随之终止,需要重新开始。而使用nohup命令,则可以让任务在后台运行,即使关闭终端或者断开连接,任务也会继续运行。 Python是一种高级编程语言,常用于数据分析、机器学习、Web开发等领域。使用nohup命令和Python命令配合可以实现在后台运行Python程序。例如,在终端输入以下命令: nohup python xxx.py & 其中,xxx.py是Python程序的文件名。通过输入以上命令,Python程序会在后台一直运行,即使关闭终端或者断开连接,程序也会继续执行直到完成。另外,最后加上&符号可以让程序在后台一直运行,终端依旧处于可操作状态。 使用nohup命令后,程序的输出会被重定向到nohup.out文件中,可以通过查看nohup.out文件来检查程序的输出情况。如果需要将输出定向到其他文件中,可以使用以下命令: nohup python xxx.py > output.log & 其中,output.log是自定义的文件名,Python程序的输出会被重定向到该文件中。 综上所述,nohup命令可以让Python程序在后台持续运行,是一个非常有用的命令。同时,还可以通过重定向输出,方便地查看程序输出情况。 ### 回答3: nohup是一种在Linux系统中运行命令时可以让命令在后台运行的方式。这样当用户退出终端时,命令仍然能够持续执行。它的使用方法是在命令前加上nohup并跟上待执行的命令。 在运行Python命令时,也可以使用nohup来让其在后台中运行。使用方法为: ``` nohup python filename.py & ``` 其中,filename.py为要执行的Python脚本文件的名称,&符号表示让命令在后台运行。 当脚本运行时,nohup会自动将输出结果保存到当前目录的nohup.out文件中,这样即使关闭了终端,脚本也会一直运行下去,并且输出结果会被保存下来。如果想要改变保存输出结果的文件名,可以使用重定向符号">"来修改输出文件名,如: ``` nohup python filename.py > output.log & ``` 其中,output.log为要保存输出结果的文件名。 通过使用nohup来在后台运行Python命令,可以使程序持续运行并且不受用户操作的影响。这在执行长时间运行的任务时非常有用。同时也可以很方便地查看输出结果,以便调试程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值