如何让nohup进程活着?
How to make alive nohup process?
我将 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
尝试nohup python -m flask run --cert local.crt --key local.key --host=0.0.0.0 --port=443 >/dev/null 2>&1&
使用 nohup
,你应该重定向你打印到 /dev/null
或 log
,否则它会创建一个文件 nohup.out
占用磁盘 space.
大多数时候我们使用 gunicorn
和 supervisor
来管理 Flask 应用程序。
假设您所有的 Flask 代码都位于文件夹 /home/abc_user/flask_app
.
中
步骤
在 /etc/systemd/system
中创建文件 flask-server.service
。
[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
运行 sudo systemctl daemon-reload
.
使用 systemctl start flask-server.service
启动服务。
检查它是否已由 systemctl status flask-server.service
启动。状态应为“运行ning”。
如果你想让你的烧瓶服务器在重启后自动启动,运行 systemctl enable flask-server.service
一些常用操作
- 检查当前状态 -
systemctl status flask-server.service
- 启动服务 -
systemctl start flask-server.service
- 停止服务 -
systemctl stop flask-server.service
- 检查日志 -
journalctl -u flask-server.service
- 流日志 -
journalctl -f -u flask-server.service
- 检查过去 1 小时的日志 -
journalctl -u flask-server.service --since "1 hour ago"
您是否关闭了 flask 服务器 运行 所在的计算机?
如果是这样,问题将通过不关闭计算机或在关闭后重新启动 flask 服务器来解决!
nohup 是一个 POSIX 命令来忽略 HUP(挂断)信号。按照惯例,HUP 信号是终端警告相关注销进程的方式。
如果尚未重定向,通常会进入终端的输出会进入名为 nohup.out 的文件。
请参阅 nohup.out 以在 ./ 或执行的目录中搜索错误。这不是 nohup 错误。查看 nohup.out 和 google 错误并将刷新问题。
我将 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
尝试nohup python -m flask run --cert local.crt --key local.key --host=0.0.0.0 --port=443 >/dev/null 2>&1&
使用 nohup
,你应该重定向你打印到 /dev/null
或 log
,否则它会创建一个文件 nohup.out
占用磁盘 space.
大多数时候我们使用 gunicorn
和 supervisor
来管理 Flask 应用程序。
假设您所有的 Flask 代码都位于文件夹 /home/abc_user/flask_app
.
步骤
在
/etc/systemd/system
中创建文件flask-server.service
。[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
运行
sudo systemctl daemon-reload
.使用
systemctl start flask-server.service
启动服务。检查它是否已由
systemctl status flask-server.service
启动。状态应为“运行ning”。如果你想让你的烧瓶服务器在重启后自动启动,运行
systemctl enable flask-server.service
一些常用操作
- 检查当前状态 -
systemctl status flask-server.service
- 启动服务 -
systemctl start flask-server.service
- 停止服务 -
systemctl stop flask-server.service
- 检查日志 -
journalctl -u flask-server.service
- 流日志 -
journalctl -f -u flask-server.service
- 检查过去 1 小时的日志 -
journalctl -u flask-server.service --since "1 hour ago"
您是否关闭了 flask 服务器 运行 所在的计算机? 如果是这样,问题将通过不关闭计算机或在关闭后重新启动 flask 服务器来解决!
nohup 是一个 POSIX 命令来忽略 HUP(挂断)信号。按照惯例,HUP 信号是终端警告相关注销进程的方式。
如果尚未重定向,通常会进入终端的输出会进入名为 nohup.out 的文件。
请参阅 nohup.out 以在 ./ 或执行的目录中搜索错误。这不是 nohup 错误。查看 nohup.out 和 google 错误并将刷新问题。