📅  最后修改于: 2023-12-03 14:53:17.598000             🧑  作者: Mango
有时候我们希望让 Python 文件在后台运行,而不是在命令行或终端窗口中直接运行。这种方式可以让程序在后台默默地运行,不会干扰到我们当前的工作。下面介绍几种在后台运行 Python 文件的方法。
nohup 命令可以在终端中运行一个命令,即使终端关闭或者用户注销,该命令仍然会继续运行。我们可以使用以下命令来在后台运行 Python 文件:
nohup python your_script.py > output.log &
其中 your_script.py
是你要后台运行的 Python 文件名,output.log
是你希望将输出结果保存到的文件名。
这条命令的含义是将 your_script.py
文件交给 python
解释器运行,并且将输出结果重定向到 output.log
文件中。&
符号表示在后台运行该命令。
在 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
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 文件能够在后台默默运行,而不会打扰我们当前的工作。