大连密封材料 发表于 2025-1-6 15:12:35

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

场景假设:在摆设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 编辑器完成:
   vi run.sh   2. 填写内容并保存

   在编辑器中,输入以下内容:
   #!/bin/bash
nohup python3 -u run.py > nohup.log 2>&1 &
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 脚本可实行权限,并运行它:
   chmod +x run.sh
sh run.sh   或者可以直接运行:   ./run.sh   

[*]输出示例如下:
   https://i-blog.csdnimg.cn/direct/e9a049aa963f44a0a7ed2380a5865089.png
   可以发现脚本已经运行在背景了,脚本的进程号为144907。
   说明:例如输出的进程pid为144907,假如后期不想让该项目运行在背景了,就可以通过kill -9 <pid>来竣事运行,即此处应是kill -9 144907
   但是请留意,假如你的脚本不在当前目录下,或者当前目录不在 PATH 环境变量中,你需要利用 sh run.sh 或者 bash run.sh 来实行。
   4. 查抄脚本是否精确启动

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

[*]输出日记如下:
   https://i-blog.csdnimg.cn/direct/1288a827276a4c878dc64e77efc8ac90.png
   可以看到项目运行的一些脚本环境。
   二、相关说明

   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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux上通过nohub摆设flask接口到背景(即通过nohup使得Python Flask项目在