เทอร์มินัลไม่มี ID กระบวนการ
มันเป็นกระบวนการที่มี ID กระบวนการแน่นอน ขั้วมีรหัสของตัวเองและคุณจะเห็นพวกเขาในผลของเครื่องมือต่างๆเช่นw
, who
และ (ในคอลัมน์)TTY
ps
แต่นี่ไม่ใช่รหัสกระบวนการ
ความสัมพันธ์ระหว่างกระบวนการและเทอร์มินัลไม่ใช่ 1: 1 นอกจากนี้ยังเป็นgrawity
ชี้ให้เห็นเป็นเปลือกไม่ได้เป็นขั้ว เทอร์มินัลคืออุปกรณ์ เชลล์เป็นโปรแกรม bash
โปรแกรมเป็นเปลือกซึ่งเข้าและส่งออก (ในโหมดโต้ตอบอย่างน้อย) จะอ่านและเขียนไปยังขั้วอุปกรณ์
เทอร์มินัลบนคอมพิวเตอร์ส่วนบุคคล Linux และ Unices โดยทั่วไปไม่ใช่อุปกรณ์จริงอุปกรณ์จริงเสียบเข้ากับพอร์ตอนุกรมของบางประเภท แต่พวกมันเป็นเสมือนเทอร์มินัลหรือสถานีหลอก ทั้งสองเป็นผลิตภัณฑ์ของจำลอง terminalโปรแกรม
- ในกรณีของเทอร์มินัลเสมือนโปรแกรมนั้นจะถูกฝังลงในเคอร์เนลระบบปฏิบัติการ (แม้ว่าจะมีการย้ายเพื่อเปลี่ยนสิ่งนี้) และมันไม่มี ID กระบวนการเพราะมันไม่ใช่กระบวนการที่แตกต่างในสิทธิของตนเอง
- ในกรณีของเทอร์มินัลหลอกมีกระบวนการที่จัดการด้าน "หลัก" ของอุปกรณ์และแสดงเนื้อหาของเทอร์มินัลในบางแบบ มักจะเป็นโปรแกรม GUI เช่น
xterm
, lxterminal
, konsole
, หรือgnome-terminal
rxvt
(หรืออาจเป็น SSH หรือ TELNET daemons) สิ่งเหล่านี้มี ID กระบวนการ แต่มันเป็นเทอร์มินัลอีมูเลเตอร์ที่เป็นกระบวนการไม่ใช่อุปกรณ์หลอกเทียม
สำหรับสาเหตุที่คุณเห็นสองbash
กระบวนการ: คุณมีสองbash
กระบวนการที่ทำงาน มันง่ายมาก พวกเขาไม่จำเป็นต้องเชื่อมโยงกับอุปกรณ์ปลายทางเดียวกันหรือแม้กระทั่งกับอุปกรณ์ปลายทางใด ๆ อีกครั้งTTY
คอลัมน์ในผลลัพธ์ของps
จะบอกคุณว่าสถานีควบคุมแต่ละกระบวนการมี (เทอร์มินัลไม่มี ID กระบวนการ แต่ในทางที่มีเทอร์มินัล ID)
$$
และ$PPID
ขยายไปยัง PID ของเชลล์เองและพาเรนต์