Khi làm việc với Raspberry Pi, nhiều ứng dụng yêu cầu chạy một script Python ngay khi thiết bị khởi động — ví dụ như điều khiển cảm biến, khởi tạo kết nối mạng, chạy server hoặc hệ thống nhúng. Việc thiết lập tự động chạy file Python không chỉ giúp hệ thống hoạt động ổn định mà còn tiết kiệm thời gian khởi động thủ công mỗi lần bật nguồn.
Trong bài viết này, mình sẽ hướng dẫn bạn cách cấu hình Raspberry Pi để tự động chạy một file Python mỗi khi khởi động, sử dụng systemd service — phương pháp hiện đại, mạnh mẽ và được khuyến nghị nhất trong các bản Raspberry Pi OS hiện nay (Bullseye, Bookworm) đồng thời áp dụng cho toàn bộ mạch Raspberry Pi.
Trong bài viết này chúng tôi sử dụng các thiết bị gồm:
Trước khi bắt đầu thực hiện các bước, chúng ta hãy cài hệ điều hành theo mong muốn của mình. Chúng tôi đã có bài viết hướng dẫn cách cài đặt hệ điều hành cho Raspberry Pi tại đây. Sau khi quá trình cài đặt và khởi động được hoàn tất, chúng ta sẽ cần thực hiện các bước sau:
Bước 1: Chuẩn bị file Python cần chạy
Trước tiên, bạn cần có một file Python đã sẵn sàng để thực thi. Ví dụ, bạn tạo một file đơn giản như sau để kiểm tra. Ở đây tôi đặt tên file là test_autorun.py:
nano /home/pi/test_autorun.py
Nội dung file code:
from datetime import datetime with open("/home/pi/autorun_log.txt", "a") as f: f.write(f"Script chạy lúc: {datetime.now()}\n")
File này sẽ ghi thời gian thực thi vào một file log để bạn kiểm tra sau khi khởi động. Người dùng có thể lập trình file code python theo mong muốn sử dụng của mình.
Bước 2: Tạo file systemd service
Systemd là hệ thống quản lý service hiện đại được dùng trên Raspberry Pi OS. Bạn sẽ tạo một service riêng để chạy script Python của mình.
Chạy lệnh sau để tạo file:
sudo nano /etc/systemd/system/test_autorun.service
Dán nội dung sau:
[Unit] Description=Test autorun Python script After=network.target [Service] ExecStart=/usr/bin/python3 /home/pi/test_autorun.py WorkingDirectory=/home/pi Restart=on-failure User=pi [Install] WantedBy=multi-user.target
Lưu ý:
-
Đảm bảo Execstart đúng với đường dẫn python3. Kiểm tra bằng:
which python3
-
Đảm bảo file .py có quyền thực thi:
chmod +x /home/pi/test_autorun.py
Bước 3: Kích hoạt và kiểm tra service
Đầu tiên nạp lại cấu hình:
sudo systemctl daemon-reexec
Sau đó kích hoạt chạy tự động:
sudo systemctl enable test_autorun.service
Bước 4: Khởi động lại Raspberry Pi
Thực hiện câu lệnh sau để khởi động lại Raspberry Pi
sudo reboot
Sau khi máy khởi động lại, kiểm tra xem script có chạy không bằng cách đọc nội dung log:
cat /home/pi/autorun_log.txt
Nếu thấy nội dung tương tự nghĩa là script đã chạy thành công khi Pi khởi động. Ở đây tôi đã thử restart thêm 1 lần nữa và cho ra kết quả như hình dưới đây
Vì vậy, việc thiết lập tự động chạy file Python khi Raspberry Pi khởi động giúp bạn chủ động hơn trong việc triển khai các ứng dụng nhúng như: điều khiển thiết bị, giám sát cảm biến, khởi tạo server, hoặc các tác vụ nền không cần can thiệp thủ công. Với cách làm hiện đại bằng systemd như hướng dẫn ở trên, bạn sẽ có một hệ thống ổn định, dễ kiểm soát, và dễ bảo trì về sau.
Hãy thử áp dụng vào dự án của bạn – từ các ứng dụng đơn giản đến các hệ thống tự động phức tạp – để tận dụng tối đa sức mạnh của Raspberry Pi!