Linux上通过nohub摆设flask接口到背景(即通过nohup使得Python Flask项目在 ...

打印 上一主题 下一主题

主题 912|帖子 912|积分 2736

场景假设:在摆设Python Flask项目到线上的时间,在Linux体系的假造环境中,运行项目可以正常访问到api,但是在Xshell中,一旦Ctrl+C或者关闭ssh,api接口制止了,api再也请求不到了。

   
此时我们可以:

   
假如我们要将python脚本的flask接口run.py摆设到Centos环境的背景(即退出xshell等工具步伐还可以继承运行)。

   

   
在 Linux 环境下,有时我们需要长时间运行一个步伐,好比训练一个深度学习模型或者实行一些长时间的任务。在这种环境下,我们通常会利用背景运行的方式,以防止因终端关闭而导致步伐中断。以下是关于怎样在 Linux 下利用 sh, nohup, & 等命令背景运行 Python 脚本的详细表明。

   一、nohub摆设

   1. 创建脚本 vi run.sh

   
首先,我们需要创建一个 shell 脚原来实行我们的 Python 脚本。这可以通过 vim 编辑器完成:

  
  1. vi run.sh
复制代码
  2. 填写内容并保存

   
在编辑器中,输入以下内容:

  
  1. #!/bin/bash
  2. nohup python3 -u run.py > nohup.log 2>&1 &
  3. echo "Script running in background with PID $!"
复制代码
  
这里的表明如下:

   

  • #!/bin/bash: 这行告诉体系这是一个 bash 脚本。
  • nohup python3 -u run.py > nohup.log 2>&1 &: 这一行是关键命令,让我们逐个解析:nohup: 允许步伐在用户退出后继承运行。     

    • python3 -u run.py: 实行名为 run.py 的 Python 脚本。-u 表现启用缓冲区的未缓冲模式,这对于实时输出很有效。
    • > nohup.log: 将标准输出重定向到 nohup.log 文件。
    • 2>&1: 将标准错误重定向到与标准输出雷同的地方,即 nohup.log 文件。
    • &: 将整个命令放入背景运行。

  • echo "Script running in background with PID $!": 输出背景进程的 PID(进程标识号),以便于后续管理。
   
保存并退出编辑器(对于 vim,可以按 Esc 键,然后输入 :wq 并回车)。

   3. 运行脚本

   
接下来,我们需要赋予 run.sh 脚本可实行权限,并运行它:

  
  1. chmod +x run.sh
  2. sh run.sh
复制代码
  1. 或者可以直接运行:
复制代码
  1. ./run.sh
复制代码
  

  • 输出示例如下:
   

   
可以发现脚本已经运行在背景了,脚本的进程号为144907。

   
说明:例如输出的进程pid为144907,假如后期不想让该项目运行在背景了,就可以通过kill -9 <pid>来竣事运行,即此处应是kill -9 144907

   
但是请留意,假如你的脚本不在当前目录下,或者当前目录不在 PATH 环境变量中,你需要利用 sh run.sh 或者 bash run.sh 来实行。

   4. 查抄脚本是否精确启动

   
运行脚本后,查抄 nohup.log 文件以确认脚本是否已精确启动:

  
  1. cat nohup.log
复制代码
  [code][/code]   

  • 输出日记如下:
   

   
可以看到项目运行的一些脚本环境。

   二、相关说明

   1. 关于 sh, source.命令

   

  • sh script.sh:利用 /bin/sh 表明器来实行脚本。这是最根本的 shell 表明器,适用于大多数 shell 脚本。
  • bash script.sh:利用 /bin/bash 表明器来实行脚本。Bash 是一个功能更强盛的 shell,支持更多的特性。
  • source script.sh 或 . script.sh:这两种方式都会使当前 shell 会话读取并实行脚本的内容。这意味着脚本中的任何环境变量更改都会影响当前会话。
   2. 背景实行命令:&nohup

   

  • &:将命令放入背景实行。当你关闭终端时,该命令会被终止。
  • nohup:允许你在退出终端之后继承运行命令。共同 & 利用,可以确保即使你关闭终端,命令也会继承运行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表