วิธีสร้างไฟล์บริการใน Linux

Withi Srang Fil Brikar Ni Linux



ตอนนี้ระบบ systemd init เป็นส่วนหนึ่งของลีนุกซ์รุ่นต่างๆ เกือบทั้งหมดแล้ว ในฐานะผู้ดูแลระบบหรือนักพัฒนา คุณสร้างบริการที่ systemd สามารถจัดการได้ ตัวอย่างเช่น หากคุณต้องการเปิดบริการขณะบูตหรือต้องการควบคุมด้วยตนเอง ก็สามารถทำได้ผ่านไฟล์บริการที่กำหนดเอง

ในบทช่วยสอนนี้ ฉันจะอธิบายวิธีสร้างไฟล์บริการ systemd บน Linux







ไฟล์บริการคืออะไร

ก่อนที่จะไปไกลกว่านี้ มาทำความเข้าใจก่อนว่าไฟล์บริการ systemd คืออะไร และมันถูกสร้างขึ้นบน Linux อย่างไร



ไฟล์บริการ systemd มีชุดคำสั่งสำหรับ systemd เพื่อจัดการบริการ โดยทั่วไปจะประกอบด้วยสามส่วน:



  • หน่วย
  • บริการ
  • ติดตั้ง

ที่ หน่วย ส่วนประกอบด้วยข้อมูลพื้นฐานเกี่ยวกับบริการ เช่น คำอธิบายสั้น ๆ หน้าเอกสารประกอบ และเส้นทางสู่การอ้างอิง ที่ ติดตั้ง ส่วนนี้เป็นทางเลือก แต่โดยทั่วไปจะจัดการสถานะระบบที่ควรเปิดใช้งานบริการ





ที่ บริการ โดยปกติแล้วส่วนนี้จะประกบระหว่างส่วนยูนิตและส่วนการติดตั้ง โดยพื้นฐานแล้วจะมีประเภทของบริการและเส้นทางของไฟล์ปฏิบัติการที่โดยพื้นฐานแล้วคือคำสั่งในการดำเนินการเมื่อเรียกใช้บริการโดย systemd

โครงสร้างไฟล์บริการทั่วไปมีลักษณะดังนี้



- หน่วย -

คำสั่ง1 = คำแนะนำ

คำสั่ง2 = คำแนะนำ

-

- บริการ -

คำสั่ง1 = คำแนะนำ

คำสั่ง2 = คำแนะนำ

-

- ติดตั้ง -

คำสั่ง1 = คำแนะนำ

คำสั่ง2 = คำแนะนำ

-

ในที่นี้ คำสั่งคือพารามิเตอร์ที่รับอินพุตตามลำดับ ตัวอย่างเช่น คำอธิบาย คำสั่งรับสตริงชื่อของบริการ ในทำนองเดียวกัน เอ็กเซ็กสตาร์ท คำนึงถึงเส้นทางที่สมบูรณ์ของไฟล์ปฏิบัติการ

ไฟล์บริการทั่วไปของ ssh.บริการ ได้รับด้านล่าง

วิธีสร้างไฟล์บริการ

ในการสร้างบริการ systemd จำเป็นต้องเข้าใจคำสั่งหลัก ในคู่มือนี้ ฉันจะกล่าวถึงคำสั่งสำคัญที่สามารถช่วยคุณสร้างไฟล์บริการที่ทำงานได้อย่างสมบูรณ์

การสร้างไฟล์บริการมีหลายขั้นตอน มาเริ่มกันที่การสร้างไฟล์สคริปต์กัน

บันทึก: หากต้องการดำเนินการตามวิธีที่กล่าวถึงด้านล่าง คุณต้องมีสิทธิ์ใช้งานรูท

1. การสร้างสคริปต์

ขั้นตอนเริ่มต้นเกี่ยวข้องกับการสร้างโค้ดที่จะดำเนินการเมื่อบริการเริ่มดำเนินการ สำหรับบทช่วยสอนนี้ ฉันกำลังสร้างสคริปต์ทุบตีที่จะจัดเก็บสถานะการออนไลน์ของระบบ Linux และการใช้งานหน่วยความจำ

มาสร้างสคริปต์ในไดเร็กทอรีปัจจุบันด้วยชื่อ myscript.sh ใช้โปรแกรมแก้ไขนาโน

ซูโดะ นาโน myscript.sh

ตอนนี้เพิ่มสคริปต์ที่ระบุด้านล่างในไฟล์และบันทึกโดยกด Ctrl+x แล้ว และ -

#!/bin/bash

เสียงสะท้อน '>>นี่คือสถานะการออนไลน์ของระบบของคุณ<<' - บ้าน - ตัวเขาเอง - myfile.txt

เวลาทำงาน - บ้าน - ตัวเขาเอง - myfile.txt

เสียงสะท้อน '>>นี่คือการใช้หน่วยความจำของระบบของคุณ<<' - - บ้าน - ตัวเขาเอง - myfile.txt

ฟรี -ม - บ้าน - ตัวเขาเอง - myfile.txt

นอน 60

สคริปต์ประกอบด้วยสตริง echo สองสามรายการและ เวลาทำงาน และ ฟรี คำสั่ง

ที่ เวลาทำงาน คำสั่งบน Linux ใช้เพื่อพิมพ์ระยะเวลาที่ระบบทำงาน และจำนวนผู้ใช้ที่เชื่อมต่อกับโหลดระบบโดยเฉลี่ย 1, 5 และ 15 นาทีที่ผ่านมา

ที่ ฟรี คำสั่งจะใช้ในการพิมพ์การใช้หน่วยความจำของระบบในขณะที่ -ม flag ใช้ในการพิมพ์เอาท์พุต MB -

ในการบันทึกข้อมูลในไฟล์ข้อความ เราใช้ตัวดำเนินการพิเศษที่เรียกว่าตัวดำเนินการเปลี่ยนเส้นทาง ที่ - โอเปอเรเตอร์ใช้ในการแทรกข้อความลงในไฟล์ข้อความดังกล่าว อย่างไรก็ตาม หากไม่มีไฟล์อยู่แล้ว ไฟล์นั้นจะถูกสร้างขึ้น ในขณะที่ - โอเปอเรเตอร์ใช้ในการต่อท้ายข้อความในไฟล์ ที่ นอน คำสั่งถูกใช้เพื่อรักษากิจกรรมของบริการไว้เป็นระยะเวลาขั้นต่ำหนึ่งนาที

ตอนนี้ทำให้สคริปต์สามารถทำงานได้โดยให้สิทธิ์ที่จำเป็น

ซูโดะ โครโมด +x myscript.sh

ขณะนี้สคริปต์มีสิทธิ์ดำเนินการแล้ว เรามาดำเนินการในส่วนถัดไปกันดีกว่า

บันทึก: หากต้องการทำให้ไฟล์บริการปราศจากข้อผิดพลาด ให้ใช้พาธสัมบูรณ์ของไฟล์ในสคริปต์ทุบตี

2. การสร้างไฟล์ .service

จากนั้นสร้างไฟล์บริการด้วยนามสกุล .บริการ ส่วนขยาย. ไฟล์บริการจะต้องสร้างในรูปแบบ /etc/systemd/system ไดเรกทอรี ขั้นแรก นำทางไปยังไดเร็กทอรีนี้โดยใช้ไฟล์ ซีดี สั่งการ.

ซีดี - ฯลฯ - ระบบ - ระบบ

คุณสามารถสร้างไฟล์บริการในไดเร็กทอรีใดก็ได้ และย้ายไฟล์นั้นไปยังไดเร็กทอรีนี้ในภายหลัง

ฉันกำลังสร้างไฟล์บริการด้วย myservice.service ชื่อ.

ซูโดะ นาโน myservice.service

ตอนนี้ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์

- หน่วย -

คำอธิบาย = บริการของฉัน

- บริการ -

พิมพ์ = เรียบง่าย

เอ็กเซ็กสตาร์ท - - ถังขยะ - ทุบตี - บ้าน - ตัวเขาเอง - script.sh

เริ่มต้นใหม่ = เมื่อล้มเหลว

- ติดตั้ง -

ต้องการโดย =ผู้ใช้หลายรายเป้าหมาย

โปรดทราบว่า [หน่วย], [บริการ], และ [ติดตั้ง] เป็น กรณีที่สำคัญ - ไฟล์บริการจะไม่ทำงานหากมีการกล่าวถึงอย่างไม่ถูกต้อง เช่น [UNIT] หรือ [SERVICE]

ชื่อบริการระบุเป็น บริการของฉัน ใน คำอธิบาย คำสั่งของ [หน่วย] ส่วน.

ที่ พิมพ์ ของการบริการก็คือ เรียบง่าย ใน [บริการ] ส่วนซึ่งเป็นประเภทเริ่มต้น การฟอร์ก - นัดเดียว - แจ้ง - ดีบัส และ idle ก็เป็นอีกประเภทหนึ่ง

หากคุณต้องการทำให้ผู้ใช้บริการมีความเฉพาะเจาะจง ผู้ใช้ คำสั่งยังสามารถใช้กับชื่อผู้ใช้ของผู้ใช้ได้ การใช้คำสั่งนี้จะทำให้การอนุญาตของผู้ใช้บริการขึ้นอยู่กับ

ในขณะที่ เอ็กเซ็กสตาร์ท คำสั่งประกอบด้วยเส้นทางแบบเต็มของไฟล์ปฏิบัติการ ในตัวอย่างข้างต้นคือไฟล์สคริปต์ myscript.sh ถูกเก็บไว้ใน /home/แซม/ ไดเรกทอรี ในความเป็นจริงคำสั่งนี้จัดการสิ่งที่จะดำเนินการเมื่อมีการเรียกใช้บริการโดย systemd หากไม่ได้ระบุเส้นทางแบบเต็มของคำสั่งคำสั่งจะได้รับการแก้ไขโดยอัตโนมัติเพื่อแก้ไขเส้นทางที่แน่นอนเช่น /usr/local/bin - /usr/bin/, และ /bin - เป็นการดีอย่างยิ่งที่จะใช้ชื่อที่ปฏิบัติการได้ ตราบใดที่ชื่อเหล่านั้นอยู่ในไดเร็กทอรีคำสั่งมาตรฐาน อย่างไรก็ตาม ให้ระบุเส้นทางที่แน่นอนเป็นอย่างอื่น โปรดทราบว่าสามารถใช้หลายคำสั่งได้โดยคั่นด้วยเครื่องหมายอัฒภาค (;)

ที่ [ติดตั้ง] ส่วนนี้เป็นทางเลือก แต่จะระบุวิธีการเปิดใช้งานบริการ ที่ ต้องการโดย คำสั่งใช้ไฟล์เป้าหมายระดับการทำงานเป็นพารามิเตอร์ ไฟล์เป้าหมายต่างๆ ระบุระดับการทำงานที่แตกต่างกันของระบบ เช่น ปิด - กู้ภัย - ผู้ใช้หลายคน - แบบกราฟิก , และ รีบูต -

ที่ ผู้ใช้หลายรายเป้าหมาย หมายถึงบริการจะถูกเปิดใช้งานเมื่อระบบอยู่ในสถานะที่อนุญาตเซสชันที่ไม่ใช่แบบกราฟิกที่มีผู้ใช้หลายราย

3. การเปิดใช้งานบริการ

หากต้องการเปิดใช้งานบริการ ขั้นแรกให้โหลดการกำหนดค่า systemd ใหม่โดยใช้ ระบบ คุณประโยชน์.

ซูโดะ systemctl daemon-รีโหลด

จากนั้นเปิดใช้งานบริการอีกครั้งโดยใช้ ระบบ สั่งการด้วย เปิดใช้งาน -

ซูโดะ ระบบ เปิดใช้งาน myservice.service

หากต้องการยืนยันให้ตรวจสอบสถานะของบริการโดยใช้ สถานะ systemctl สั่งการ.

บริการทำงานได้สำเร็จ

ตอนนี้เรามาอ่านไฟล์ข้อความกันดีกว่า myfile.txt บริการที่สร้างขึ้นใน /บ้าน ไดเรกทอรี

วิธีสร้างไฟล์บริการ Systemd สำหรับผู้ใช้ทั่วไป

ขั้นตอนการสร้างไฟล์บริการสำหรับผู้ใช้ทั่วไปจะคล้ายกับวิธีการสร้างไฟล์บริการโดยผู้ดูแลระบบ อย่างไรก็ตาม ไดเร็กทอรีสำหรับบันทึกไฟล์บริการสำหรับผู้ใช้ทั่วไปจะแตกต่างออกไป ผู้ใช้ทั่วไปจะต้องวางไฟล์บริการของตนไว้ในไฟล์ ~/.config/systemd/user - ไดเร็กทอรีนี้จะต้องสร้างโดยใช้ไฟล์ mkdir สั่งการ.

mkdir - - .กำหนดค่า - ระบบ - ผู้ใช้

เพื่อเปิดใช้งานบริการโดยผู้ใช้ปกติ –ผู้ใช้ คำสั่งถูกแทรกด้วย ระบบ แทน ซูโดะ -

ระบบ --ผู้ใช้ daemon-รีโหลด

ระบบ --ผู้ใช้ เปิดใช้งาน บริการ-NAME.service

ระบบ --ผู้ใช้ สถานะ SERVICE-NAME.service

ที่ –ผู้ใช้ ตัวเลือกนี้ใช้เพื่อจัดการไฟล์บริการ systemd ของผู้ใช้

วิธีลบไฟล์บริการ

หากต้องการลบไฟล์บริการ ขั้นแรก จะต้องหยุดบริการก่อน

ซูโดะ systemctl หยุด SERVICE-NAME.service

ตรวจสอบสถานะการใช้งาน สถานะ systemctl คำสั่งให้ทราบว่าบริการหยุดหรือไม่ จากนั้นลบไฟล์บริการโดยใช้นามสกุล RM สั่งการ.

ซูโดะ RM - ฯลฯ - ระบบ - ระบบ - บริการ-NAME.service

ตอนนี้โหลดซ้ำ ระบบ การกำหนดค่า

ซูโดะ systemctl daemon-รีโหลด

บทสรุป

บริการ systemd แบบกำหนดเองมีข้อได้เปรียบในสถานการณ์ต่างๆ ในคู่มือนี้ เราได้เรียนรู้วิธีสร้างไฟล์บริการ systemd แบบกำหนดเองสำหรับผู้ดูแลระบบ และวิธีที่ผู้ใช้ทั่วไปสามารถสร้างไฟล์บริการได้ นอกจากนี้เรายังเห็นขั้นตอนการลบไฟล์บริการอีกด้วย