รหัสกระบวนการสองรายการสำหรับหนึ่งเทอร์มินัลใน bash linux mint


0

ฉันใช้เทอร์มินัล bash หนึ่งตัวใน linux mint ฉันต้องการดูรหัสกระบวนการของเทอร์มินัลการทำงาน

ดังนั้นฉันจึงลองสองสิ่ง:

ps -C 'bash'

ls -l /proc/*/exe | grep bash

ทั้งสองสิ่งนี้ให้รหัสกระบวนการสองชุด ผู้ใดสามารถอธิบายเหตุผลสำหรับรหัสกระบวนการทั้งสองนี้สำหรับเทอร์มินัลเดียวเท่านั้น วิธีการระบุ id กระบวนการจริงของ terminal ระหว่างสอง?

ขอบคุณ


2
โปรดทราบว่า bash เป็นเชลล์ - ล่ามคำสั่ง - ไม่ใช่เทอร์มินัล ผู้ปกครองโปรแกรมที่ดึงเอาท์พุทของ bash บนหน้าจอจะเป็นเทอร์มินัล ใน bash ตัวแปรพิเศษ$$และ$PPIDขยายไปยัง PID ของเชลล์เองและพาเรนต์
grawity

คำตอบ:


2

เทอร์มินัลไม่มี 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)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.