📜  如何让 python 文件在后台运行 - Python (1)

📅  最后修改于: 2023-12-03 14:53:17.598000             🧑  作者: Mango

如何让 Python 文件在后台运行

有时候我们希望让 Python 文件在后台运行,而不是在命令行或终端窗口中直接运行。这种方式可以让程序在后台默默地运行,不会干扰到我们当前的工作。下面介绍几种在后台运行 Python 文件的方法。

1. 使用 nohup 命令

nohup 命令可以在终端中运行一个命令,即使终端关闭或者用户注销,该命令仍然会继续运行。我们可以使用以下命令来在后台运行 Python 文件:

nohup python your_script.py > output.log &

其中 your_script.py 是你要后台运行的 Python 文件名,output.log 是你希望将输出结果保存到的文件名。

这条命令的含义是将 your_script.py 文件交给 python 解释器运行,并且将输出结果重定向到 output.log 文件中。& 符号表示在后台运行该命令。

2. 使用 systemd 服务

在 Linux 系统上,我们可以创建一个 systemd 服务来后台运行 Python 文件。这种方式可以让我们更方便地管理和控制后台运行的程序。

首先,创建一个 .service 文件,比如 your_service.service,并使用文本编辑器打开该文件:

sudo nano /etc/systemd/system/your_service.service

在该文件中,可以添加以下内容:

[Unit]
Description=Your Python Service
After=network.target

[Service]
ExecStart=/usr/bin/python /path/to/your_script.py
WorkingDirectory=/path/to/your_script.py
User=your_username
Group=your_groupname

[Install]
WantedBy=multi-user.target

请将 /path/to/your_script.py 替换为你要后台运行的 Python 文件的路径,your_username 替换为你的用户名,your_groupname 替换为你的用户组名。

保存并关闭该文件。接下来,重新加载 systemd 配置并启动服务:

sudo systemctl daemon-reload
sudo systemctl start your_service

现在你的 Python 文件应该已经在后台运行了。你可以使用以下命令来检查服务状态:

sudo systemctl status your_service
3. 使用 screen 命令

screen 命令可以创建一个多重窗口管理器,使得我们可以在一个终端会话中创建多个终端窗口,并在这些窗口之间切换。我们可以使用以下命令来在后台运行 Python 文件:

首先,创建一个新的 screen 会话:

screen -S your_session_name

然后,在新的会话中运行 Python 文件:

python your_script.py

接着,按下 Ctrl + A 再按下 d 键来分离该会话,使得 Python 文件在后台继续运行。

要重新连接到该会话,可以使用以下命令:

screen -r your_session_name

这样就可以重新打开之前的 screen 会话,并查看 Python 文件的输出。

以上是三种在后台运行 Python 文件的方法,你可以根据自己的需要选择适合的方式。无论选择哪种方式,都可以确保 Python 文件能够在后台默默运行,而不会打扰我们当前的工作。