ฉันได้ยินจำนวนมากพูดคุยเกี่ยวกับ Daemons ที่ทำงานบนคอมพิวเตอร์ Ubuntu ของฉัน - พวกเขาคืออะไร?
ฉันได้ยินจำนวนมากพูดคุยเกี่ยวกับ Daemons ที่ทำงานบนคอมพิวเตอร์ Ubuntu ของฉัน - พวกเขาคืออะไร?
คำตอบ:
ในระยะสั้นภูตเป็นกระบวนการพื้นหลัง
Daemons อาจเป็นโปรแกรมปกติที่ทำงานในพื้นหลัง แต่ส่วนใหญ่จะสร้างขึ้นโดยเริ่มต้นกระบวนการฟอร์กมันและออกจากพาเรนต์
เมื่อต้องการแยกกระบวนการหมายถึงการสร้างสำเนาที่แน่นอน ผู้ปกครองของกระบวนการว่าถ้าพ่อแม่ที่แท้จริงยุติทันทีคือตอนนี้initกระบวนการที่/sbin/init
ซึ่งเป็นสิ่งแรกที่เริ่มต้นบน Unix เหมือนทุกระบบปฏิบัติการ ตอนนี้กระบวนการนี้เรียกว่า Daemon แต่ก็ไม่มี TTY ที่เกี่ยวข้อง
นี่คือตัวอย่างของ Daemon ใน Python:
import sys, os, time
pid = os.fork()
# there now exist two processes
if pid > 0: # If this is the parent,
sys.exit(0) # quit.
# this is the background part:
time.sleep(5)
print "Hello, World!"
มันยังไม่เป็นหนึ่งพูดอย่างเคร่งครัด นอกจากนี้คุณยังต้องเปลี่ยนไดเรกทอรีการทำงานปัจจุบันเปลี่ยนค่าอินพุตและเอาต์พุตมาตรฐานที่แปลงเป็นไฟล์บันทึกและอื่น ๆ คุณสามารถอ่านข้อมูลเกี่ยวกับรายละเอียดเต็มไปด้วยเลือดในบทความวิกิพีเดียนี้
หากคุณเรียกใช้ตัวอย่างคุณจะสังเกตเห็นหลังจากพิมพ์สองวินาทีแม้ว่ากระบวนการที่คุณเริ่มในบรรทัดคำสั่งจะสิ้นสุดลง สำเนาของกระบวนการนี้จะถูกเรียกใช้ 'โดย' init ทันที
/proc/*/fd
) daemon ที่มีความประพฤติดีจะแยกตัวเองออกจาก tty อย่างสมบูรณ์โดยยกเลิกการจัดการไปยัง stdout, stderr และ stdin
ในระบบปฏิบัติการมัลติทาสกิ้งคอมพิวเตอร์ daemon เป็นโปรแกรมคอมพิวเตอร์ที่ทำงานเป็นกระบวนการพื้นหลังแทนที่จะอยู่ภายใต้การควบคุมโดยตรงของผู้ใช้แบบโต้ตอบ ตามเนื้อผ้าชื่อกระบวนการของ daemon ลงท้ายด้วยตัวอักษร d เพื่อชี้แจงว่ากระบวนการนั้นในความเป็นจริง daemon และสำหรับความแตกต่างระหว่าง daemon และโปรแกรมคอมพิวเตอร์ปกติ ตัวอย่างเช่น syslogd คือ daemon ที่ใช้เครื่องมืออำนวยความสะดวกในการบันทึกระบบและ sshd เป็น daemon ที่ให้บริการการเชื่อมต่อ SSH ขาเข้า
ตามที่คุณเห็นเลเยอร์ของภูต