เวลาเราทำโปรแกรม หรือ script ต่างๆ ขึ้นมาเพื่อรันบน Raspberry Pi ปัญหาหนึ่งที่เราเจอกันบ่อยๆ ก็คือ script หยุดทำงานกลางคัน เพราะ error หรืออะไรต่างๆ หรือการสั่ง restart ทั้งระบบ แล้วต้องมานั่งเปิดโปรแกรมใหม่ทีละตัว จะสั่งให้รันอัตโนมัติใน cron job หรือใน supervisor ก็ได้แต่จะควบคุมการปิดเปิดโปรแกรมยากหน่อย ทางออกที่ง่ายและสะดวกที่สุดก็คงหนีไม่พ้นการสร้าง Service เพื่อสั่งให้รัน สคริป หรือโปรแกรมต่างๆ ของเราแบบอัตโนมัติครับ
เริ่มแรกให้ใช้คำสั่ง
sudo nano /etc/systemd/system/ชื่อServiceที่จะใช้.service
หลังจากนั้น copy คำสั่งนี้ไปใส่ได้เลยครับ
[Unit]
Description=รายละเอียดชื่อ service ของเรา
After=network.target
[Service]
User=pi
Group=pi
Type=simple
ExecStart=คำสั่งที่จะรัน script ของเรา เช่น python /home/pi/wx_mqtt_client.py
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
เสร็จแล้ว ก็ save โดยกด Ctl+x แล้วตามด้วย Y หลังจากนั้นเริ่มเปิดใช้งาน service โดยใช้คำสั่ง
sudo systemctl daemon-reload
sudo systemctl enable ชื่อserviceของเรา
เสร็จแล้วครับ หลังจากนั้น 3 คำสั่งที่ใช้ควบคุมการทำงาน service ของเราก็มีแค่
sudo service ชื่อservice start
sudo service ชื่อservice stop
sudo service ชื่อservice restart
แถมท้ายด้วยคำสั่งดูสถานะการทำงานของ Service ของเรากันครับ
sudo service ชื่อservice status