【发布时间】:2020-08-25 23:01:30
【问题描述】:
我有一个用 python 编写的应用程序,它在 VPS 服务器上运行。它是一个小型应用程序,通过 TCP 套接字从 SQLite 数据库写入、读取和接收读取请求。
缺点是应用程序只在控制台打开时运行(使用ssh协议),在关闭控制台时,即ssh会话关闭应用程序。 应该如何实施?还是我必须实施?因为服务器是ubuntu服务器
【问题讨论】:
我有一个用 python 编写的应用程序,它在 VPS 服务器上运行。它是一个小型应用程序,通过 TCP 套接字从 SQLite 数据库写入、读取和接收读取请求。
缺点是应用程序只在控制台打开时运行(使用ssh协议),在关闭控制台时,即ssh会话关闭应用程序。 应该如何实施?还是我必须实施?因为服务器是ubuntu服务器
【问题讨论】:
nohup 应该对您的情况有所帮助:
即使它的父 shell(ssh 会话)被终止,程序也应该继续工作。
【讨论】:
nohup <COMMAND> 1>/tmp/error.log 2>&1 & 看看应用程序何时最终关闭,/tmp/error.log 是否包含任何线索?
有(至少)两种解决方案:
1- 'nohup' 命令,使用如下:nohup python3 yourappname.py &
这将在后台运行您的程序,如果您终止 ssh 会话,它不会被杀死,它还会在运行此命令后给您一个免费提示以继续您的工作。
2- 另一个很棒的选项是“screen”命令。 这为您提供了 nohup 为您提供的一切,此外它还允许您在以后的登录中检查程序的输出(如果有)。虽然乍一看可能有点复杂,但是超级酷!我强烈建议您学习它并在您的余生中享受它! 一个很好的解释可以在here
【讨论】: