如何使nohup进程活着? 一些常见的操作

问题描述

我将 nohup 命令与 Python 和 Flask 一起用于后台进程。关闭终端后,它工作正常,但 1 或 2 天后该过程停止。有人能告诉我如何保持后台进程运行吗?我正在使用以下命令:

screen
space
nohup python -m flask run --cert local.crt --key local.key --host=0.0.0.0 --port=443 &
ctrl+a+d

解决方法

假设您的所有 Flask 代码都位于文件夹 /home/abc_user/flask_app 中。

步骤

  1. flask-server.service 中创建文件 /etc/systemd/system

     [Unit]
     Description=Flask server
     After=network.target
    
     [Service]
     User=abc_user
     Group=abc_user
     WorkingDirectory=/home/abc_user/flask_app
     ExecStart=python -m flask run --cert local.crt --key local.key --host=0.0.0.0 --port=443
     Restart=always
    
     [Install]
     WantedBy=multi-user.target
    
  2. 运行 sudo systemctl daemon-reload

  3. 使用 systemctl start flask-server.service 启动服务。

  4. 检查它是否已由 systemctl status flask-server.service 启动。状态应显示“正在运行”。

  5. 如果您希望您的 Flask 服务器在重启后自动启动,请运行 systemctl enable flask-server.service

一些常见的操作

  1. 检查当前状态 - systemctl status flask-server.service
  2. 启动服务 - systemctl start flask-server.service
  3. 停止服务 - systemctl stop flask-server.service
  4. 检查日志 - journalctl -u flask-server.service
  5. 流日志 - journalctl -f -u flask-server.service
  6. 查看过去 1 小时的日志 - journalctl -u flask-server.service --since "1 hour ago"
,

试试nohup python -m flask run --cert local.crt --key local.key --host=0.0.0.0 --port=443 >/dev/null 2>&1&
使用 nohup ,你应该将你的打印重定向到 /dev/nulllog,否则会创建一个文件 nohup.out 占用磁盘空间。

大多数时候我们使用 gunicornsupervisor 来管理烧瓶应用程序。

,

您是否关闭了运行 Flask 服务器的计算机? 如果是这样,要么不关闭计算机,要么关闭后重新启动flask服务器来解决问题!

,

nohup 是一个 POSIX 命令,用于忽略 HUP(挂断)信号。按照惯例,HUP 信号是终端警告相关进程注销的方式。

如果尚未重定向,通常会发送到终端的输出会发送到名为 nohup.out 的文件。

请参阅 nohup.out 以在 ./ 或已执行目录中搜索错误。这不是 nohup 错误。查看 nohup.out 和 google 错误,将刷新问题。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...