在 Ubuntu 20 上设置 Python 脚本开机自启动
在现代计算机使用中,自动启动某些服务或脚本可以提高效率,尤其是在服务器或物联网设备上。本文将指导您如何在 Ubuntu 20 上设置 Python 脚本在系统启动时自动运行。我们将一步步了解如何实现这一目标,并提供具体的代码示例。
一、准备工作
首先,您需要一台安装了 Ubuntu 20 的计算机,并且已经安装了 Python 环境。如果还没有安装 Python,可以通过以下命令进行安装:
sudo apt update
sudo apt install python3
接下来,我们需要创建一个简单的 Python 脚本。打开您喜欢的文本编辑器,创建一个名为 startup_script.py
的文件,内容如下:
# startup_script.py
import datetime
def log_time():
with open('/home/your_username/startup.log', 'a') as f:
f.write(f"Script started at: {datetime.datetime.now()}\n")
if __name__ == "__main__":
log_time()
请确保将 your_username
替换为您的实际用户名。这个脚本的功能是在每次启动时记录当前时间到 startup.log
文件中。
二、给脚本添加执行权限
在终端中,给脚本添加可执行权限,运行以下命令:
chmod +x /home/your_username/startup_script.py
三、使用 Systemd 设置开机自启动
Ubuntu 使用 systemd
作为其服务管理器。通过创建一个 systemd
单元文件,可以轻松设置 Python 脚本的自启动。
1. 创建一个单元文件
在 /etc/systemd/system/
目录下创建一个新的服务文件,命名为 startup_script.service
:
sudo nano /etc/systemd/system/startup_script.service
在文件中输入以下内容:
[Unit]
Description=Startup Python Script
[Service]
ExecStart=/usr/bin/python3 /home/your_username/startup_script.py
WorkingDirectory=/home/your_username
StandardOutput=append:/home/your_username/startup.log
StandardError=append:/home/your_username/startup_error.log
Restart=always
[Install]
WantedBy=multi-user.target
2. 重新加载 systemd
管理器配置
为了让 systemd
识别我们刚才创建的服务文件,我们需要运行以下命令:
sudo systemctl daemon-reload
3. 启用并启动服务
接下来,我们需要启用该服务,以便它能在开机时自动运行:
sudo systemctl enable startup_script.service
您可以手动启动该服务以测试其功能:
sudo systemctl start startup_script.service
然后,您可以查看运行日志,确保服务正在正常工作:
cat /home/your_username/startup.log
cat /home/your_username/startup_error.log
四、关系图
为了更清晰地展示 systemd
服务与 Python 脚本之间的关系,我们使用 Mermaid 语法来构建一个 ER 图:
erDiagram
SYSTEM {
string name
}
SERVICE {
string name
string status
}
SCRIPT {
string name
string path
}
SYSTEM ||--o| SERVICE : manages
SERVICE ||--|| SCRIPT : executes
此图表说明了系统 (SYSTEM
) 管理的服务 (SERVICE
),而服务则执行特定的脚本 (SCRIPT
)。
五、旅行图
我们以旅行图的形式描述这个过程,展示从编写 Python 脚本到实现开机自启动的整个旅程:
journey
title 从零开始设置 Python 脚本开机自启
section 步骤 1: 编写 Python 脚本
创建脚本: 5: 脚本无误
section 步骤 2: 提供执行权限
使用 chmod: 5: 权限设置成功
section 步骤 3: 创建 systemd 服务
创建服务文件: 5: 服务文件创建完成
section 步骤 4: 启用服务
启用服务: 5: 服务启用成功
section 步骤 5: 验证日志
检查日志: 5: 日志记录正常
结论
本文详细介绍了如何在 Ubuntu 20 上设置 Python 脚本为开机自启动,涉及从编写脚本到设置 systemd
服务的各个步骤。通过上述步骤,不仅提升了工作效率,也为日常管理提供了便利。今后,您可以在此基础上,根据需要进一步扩展功能,增加更多复杂的逻辑,使得您的 Python 脚本能够在启动时执行更多的任务。希望本文能对您的学习和工作有所帮助!