การให้โปรแกรมทำงานเมื่อเปิดใช้งานอุปกรณ์ IOT2050 ในรูปแบบของ Service

การให้โปรแกรมทำงานเมื่อเปิดใช้งานอุปกรณ์ IOT2050 ในรูปแบบของ Service 

 

ขั้นตอนมีดังนี้

เมื่อเปิดอุปกรณ์ สามารถสร้าง service ให้โปรแกรมทำงานขึ้นเองได้ โดยมีขั้นตอนดังนี้ 

สร้างไฟล์โดยใช้คำสั่ง nano ในโฟลเดอร์ /etc/systemd/system/ ส่วนชื่อไฟล์ให้ตามด้วย .service 

 Text Box

ภายในไฟล์ ใส่ข้อความตามด้านล่างนี้ โดยที่แก้ไขการตั้งค่าดังนี้ (ดูตั้งค่าอื่นๆเพิ่มเติมได้จากใน reference) 

  • Description ใส่ข้อความอธิบายเกี่ยวกับ Service นี้ 
  • WorkingDirectoryโฟลเดอร์ของโปรแกรมที่จะเรียก 
  • ExecStartคำสั่ง (command with argumentsที่ต้องการให้ทำงานเมื่อ Service นี้เริ่มต้น  

เช่น ในตัวอย่างเป็นการรัน WDConnection_Core.dll โดยใช้คำสั่งชื่อ dotnet 

  • Restartให้ restart service เสมอ เมื่อโปรเซสหยุดทำงาน 
  • RestartSecช่วงเวลาเป็นวินาทีก่อนที่จะ restart service 
  • SyslogIdentifierชื่อสำหรับเก็บ System Log 
  • Userบัญชีผู้ใช้ที่จะรันโปรแกรม 

Text Box 

 

เมื่อแก้ไขเสร็จเรียบร้อย กด Ctrl+O เพื่อบันทึก และกด Enter เพื่อยืนยันการบันทึก หลังจากนั้นจึงกด Ctrl+X เพื่อออกจาก nano 

ส่วนของไฟล์ที่จะให้ทำงานเป็น service นั้น ให้แก้ไขตั้งค่า File Permission เป็น executable โดยใช้คำสั่ง chmod +x ตามด้วยชื่อไฟล์ เช่น 

 

Text Box 

พิมพ์คำสั่ง systemctl enable และตามด้วยชื่อ service ที่ตั้งไว้ตอนแรก เพื่อเปิดการใช้งาน เช่น 

 

Text Box 

สั่งให้ server เริ่มทำงานโดยคำสั่ง systemctl start และตามด้วยชื่อ service 

 Text Box

 

ดูสถานะการทำงานของ server โดยพิมพ์ systemctl status และตามด้วยชื่อ service  

 Text Box

 

หากทำงานปกติจะขึ้นว่า Active (running) ดังในภาพด้านล่าง (กด Ctrl+C เพื่อออกจากหน้า status) 

 

 

หากต้องการหยุด service สามารถใช้คำสั่ง systemctl stop และตามด้วยชื่อ service ได้ 

 

Text Box 

หลังจากนั้นจึงลอง reboot อุปกรณ์ เพื่อทดสอบว่าโปรแกรมจะทำงานเองหรือไม่ตอนเปิดขึ้นมาใหม่

โดยใช้คำสั่ง reboot และรอซักครู่หนึ่งก่อนที่จะติดต่อด้วย Putty เข้ามา แล้วเรียกดู status อีกครั้ง เพื่อยืนยันว่าโปรแกรมกำลังทำงานอยู่ 

  

สามารถดูวิธีต่างๆ ดังที่กล่าวมาข้างต้นได้ในวีดีโอด้านล่างนี้


 

References:  

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-2.1&tabs=aspnetcore2x#create-the-service-file 

https://www.freedesktop.org/software/systemd/man/systemd.service.html 

 

Leave a Reply

Your email address will not be published. Required fields are marked *