วิธีสร้างและจัดการบริการผู้ใช้บน Linux

Withi Srang Laea Cadkar Brikar Phu Chibn Linux



ผู้ใช้ Linux ปกติสามารถสร้างบริการ systemd แบบกำหนดเองได้ ในขณะที่บริการ systemd ได้รับการจัดการโดยผู้ดูแลระบบเป็นส่วนใหญ่โดยใช้คำสั่ง systemctl คำสั่งเดียวกันนี้ยังสามารถใช้เพื่อจัดการบริการเฉพาะของผู้ใช้ได้ สิ่งที่คุณต้องการคือ –ผู้ใช้ ธง.

ในคู่มือนี้ ผมจะกล่าวถึงวิธีสร้างบริการเฉพาะผู้ใช้บน Linux และวิธีจัดการโดยใช้ systemctl

เหตุผลในการใช้บริการผู้ใช้บริการตามปกติ

การบริการผู้ใช้ปกติจะแตกต่างจากบริการของระบบ บริการผู้ใช้ปกติจะเข้าสู่ระบบโดยผู้ใช้เป็นศูนย์กลาง บริการนี้จะใช้ได้เฉพาะในเซสชันของผู้ใช้ที่สร้างขึ้นเท่านั้น







วิธีสร้างบริการผู้ใช้ปกติ

บริการเฉพาะผู้ใช้บน Linux นั้นอยู่ใน ~/.config/systemd/user ไดเรกทอรี หากไม่มีไดเร็กทอรีนี้ ก็สามารถสร้างไดเร็กทอรีนี้ได้

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

ที่ -พี flag ใช้เพื่อสร้างไดเร็กทอรีหลักหากจำเป็น ที่ - ระบุโฮมไดเร็กตอรี่ของผู้ใช้ในเครื่องและเทียบเท่ากับ /home/user ในขณะที่จุดก่อนไฟล์ปรับแต่งจะทำให้มันถูกซ่อน มาสร้างไฟล์สคริปต์ทุบตีง่ายๆ ที่จะเขียนการใช้หน่วยความจำลงในข้อความทุกๆ 30 นาที ฉันกำลังสร้างสคริปต์ด้วยชื่อ script.sh -

- /bin/ทุบตี

ในขณะที่ จริง

ทำ

ฟรี -ม - - บ้าน - ผู้ใช้ - myfile.txt

นอน 1800

เสร็จแล้ว

สคริปต์นี้สามารถสร้างได้ทุกที่ แต่ต้องแน่ใจว่าเส้นทางที่ระบุภายในสคริปต์นั้นเป็นเส้นทางที่แน่นอน

ตอนนี้ เรามาสร้างบริการที่จะรันสคริปต์ด้านบนในเบื้องหลังกันดีกว่า เปิดตัวแก้ไขข้อความใดๆ เช่น Nano หรือ Vim และวางบรรทัดที่ระบุด้านล่างลงไป

- หน่วย -

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

- บริการ -

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

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

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

- ติดตั้ง -

ต้องการโดย =default.target

ในส่วน [หน่วย] นั้น คำอธิบาย คำสั่งมีเพียงชื่อของบริการ โปรดทราบว่าไม่ควรเกิน 80 อักขระ

ส่วน [บริการ] ประกอบด้วยคำสั่งที่สำคัญสามประการ ประการแรก พิมพ์ - ซึ่งเป็น เรียบง่าย , แล้ว เอ็กเซ็กสตาร์ท ซึ่งมีไฟล์ปฏิบัติการของสคริปต์ที่เรากำหนดเอง บริการจะรีสตาร์ทเฉพาะเมื่อเกิดข้อผิดพลาดเท่านั้น

ส่วน [ติดตั้ง] ประกอบด้วย ต้องการโดย คำสั่งซึ่งก็คือ default.เป้าหมาย หมายความว่าบริการจะถูกเปิดใช้งานในสถานะระบบเมื่อถึงระดับการทำงานเริ่มต้น ซึ่งโดยปกติจะเป็น multi-user.target หรือ graphical.target

ตอนนี้ให้บันทึกไฟล์ในรูปแบบ ~/.config/systemd/user ไดเร็กทอรีที่มีชื่อใด ๆ ; ฉันกำลังตั้งชื่อมัน myservice.service -

วิธีการจัดการบริการผู้ใช้ปกติ

ในการจัดการบริการผู้ใช้ปกติ คำสั่ง systemctl จะถูกนำมาใช้กับ –ผู้ใช้ ธง. ที่ –ผู้ใช้ แฟล็กแสดงว่าผู้ใช้กำลังติดต่อผู้จัดการฝ่ายบริการ ไม่ใช่ระบบ

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

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

นี่จะใช้การเปลี่ยนแปลง

หากต้องการทราบว่าบริการกำลังทำงานอยู่หรือไม่ ให้ใช้ systemctl พร้อมกับ –ผู้ใช้ ธงและตัวเลือก

ระบบ --ผู้ใช้ สถานะ - บริการ_ชื่อ -

คำสั่งอื่นๆ ในการจัดการบริการผู้ใช้ตามปกติมีดังต่อไปนี้:

ระบบ --ผู้ใช้ เริ่ม - บริการ_ชื่อ -

ระบบ --ผู้ใช้ เปิดใช้งาน - บริการ_ชื่อ -

ระบบ --ผู้ใช้ หยุด - บริการ_ชื่อ -

ระบบ --ผู้ใช้ ปิดการใช้งาน - บริการ_ชื่อ -

ระบบ --ผู้ใช้ เริ่มต้นใหม่ - บริการ_ชื่อ -

วิธีสร้างบริการผู้ใช้ปกติด้วยสิทธิ์ผู้ดูแลระบบ

มีบริการมากมายที่ผู้ใช้สร้างขึ้น แต่ต้องได้รับอนุญาตจากผู้ดูแลระบบจึงจะทำงานได้ บริการดังกล่าวสามารถสร้างขึ้นได้โดยการเพิ่ม ผู้ใช้ คำสั่งไปยังส่วน [บริการ]

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

บทสรุป

ผู้ใช้ปกติสามารถสร้างบริการ systemd ได้ แต่จะต้องวางไว้ในนั้น ~/.config/systemd/user ไดเรกทอรี บริการนี้ทำงานตราบเท่าที่ผู้ใช้ที่สร้างบริการนี้เข้าสู่ระบบ บริการเหล่านี้ได้รับการจัดการผ่านคำสั่ง systemctl แต่ด้วย –ผู้ใช้ ธง. ซึ่งบอก systemd ว่าผู้ใช้กำลังเรียกใช้บริการ ไม่ใช่ระบบ ในคู่มือนี้ ฉันได้สร้างบริการผู้ใช้ปกติแบบกำหนดเองและกล่าวถึงคำสั่ง systemctl เพื่อจัดการ นอกจากนี้ ฉันยังเน้นย้ำถึงวิธีการสร้างบริการที่ต้องใช้สิทธิ์ผู้ดูแลระบบอีกด้วย