เทอร์มินัลไม่มี 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 ของเชลล์เองและพาเรนต์