Score:3

ออกจากเทอร์มินัล vs ปิดเทอร์มินัล

ธง br

บริบท:-

ฉันกำลังเรียกใช้กระบวนการทุบตีด้วย & ต่อท้ายเช่นในโหมดพื้นหลัง กระบวนการมี ในขณะที่ (1) นั่นคือมันจะทำงานตลอดไป ทุบตีของฉันเป็นผู้ปกครองและกระบวนการของฉันกลายเป็นเด็ก ฉันต้องการเรียนรู้วิธีที่เคอร์เนลจัดการกับลูกเมื่อผู้ปกครองถูกยกเลิก

ข้อสังเกต:-

  1. ถ้าฉันออกจากเทอร์มินัล (โดยใช้ ทางออก คำสั่งจากเทอร์มินัล) /lib/systemd/systemd --user กลายเป็นกระบวนการผู้ปกครองของเด็ก
  2. ถ้าฉันฆ่ากระบวนการเทอร์มินัล (โดยใช้ ฆ่า) จากเทอร์มินัลอื่น ผลลัพธ์เหมือนกับด้านบน
  3. ถ้าฉันปิดเทอร์มินัลโดยใช้ไอคอนรูปกากบาท กระบวนการลูกจะถูกยกเลิกด้วย

คำถาม:-

การปิดแตกต่างจากการฆ่า/การออกอย่างไร

sudodus avatar
jp flag
Which version (20.04.x LTS?) and which flavour (Ubuntu Desktop, Kubuntu, Lubuntu ... Xubuntu?) are you running? Which terminal emulator are you running (gnome-terminal or ... ?) What child process is it (is it a compiled program, a shellscript ...; is it running in its own window or in the background or in the original terminal window)?
Saad Abdul Majid avatar
br flag
@sudodus ความผิดพลาดของฉันเพราะขาดข้อมูล ที่นี่: Ubuntu Desktop, 18.04.5 LTS, gnome-terminal, โปรแกรมคอมไพล์ที่ทำงานในหน้าต่างของเทอร์มินัล
Score:1
ธง us
shk

มีสัญญาณประเภทต่าง ๆ ใน linux. เมื่อคุณ ทางออก เทอร์มินัล สัญญาณที่ส่งจะแตกต่างจากสัญญาณที่ส่งเมื่อคุณปิดเทอร์มินัลโดยคลิกที่ x. ลองผ่านไป สัญญาณการสิ้นสุด เพื่อดูว่าการปิดและออกของ Terminal นั้นแตกต่างกันอย่างไร

Zanna avatar
kr flag
ฉันผ่านมันแล้ว และฉันก็ยังไม่รู้ว่าสัญญาณใดถูกส่งเมื่อเราปิดหน้าต่างโปรแกรมจำลองเทอร์มินัล หรือสัญญาณใดถูกส่งเมื่อเราพิมพ์ `exit` ในเทอร์มินัล คุณช่วยอธิบายรายละเอียดและอธิบายว่าสัญญาณใดที่ส่งและความแตกต่างระหว่างสัญญาณเหล่านั้นได้บ้าง
Score:0
ธง jp

ฉันใช้ ปิง ใน คำพังเพย-terminal หน้าต่างและฉันสามารถยืนยันข้อสังเกตของคุณได้ ฉันคิดว่ามันเป็นปัญหาที่กระบวนการสามารถปล่อยให้ทำงานโดยไม่ต้องสื่อสาร ฉันจะพยายามตีความสิ่งที่ฉันสังเกตเห็น (แต่ฉันไม่อ้างว่าฉันเข้าใจว่าทำไมอาจเพื่อให้โปรแกรมที่มี GUI ของตัวเองทำงานโดยไม่ต้องใช้ ไม่อัพ หลังจากออกจาก ทุบตีเมื่อเริ่มต้นในหน้าต่างเทอร์มินัล)

  • เมื่อฉัน ทางออก ฉันกำลังจะออกจาก ทุบตี ทำงานในหน้าต่างเทอร์มินัลและ ปิง ยังคงทำงาน แต่ไม่มีที่จะเขียน

  • เมื่อฉัน ฆ่า กระบวนการที่ฉันฆ่า ทุบตี ดำเนินการในหน้าต่างเทอร์มินัล ฉันไม่พบความชัดเจน คำพังเพย-terminal กระบวนการที่จะฆ่าเพราะกระบวนการ /usr/lib/gnome-terminal/gnome-terminal-server เรียกใช้พวกเขาทั้งหมด ฉันไม่แน่ใจว่านี่คือสิ่งที่คุณกำลังทำอยู่ แต่มันคือสิ่งที่ฉันเดา

  • เมื่อฉันปิดหน้าต่าง (ด้วยปุ่ม x) ฉันออกจากกระบวนการของหน้าต่าง (ซึ่งจะบังคับให้กระบวนการลูกหยุดทำงานรวมถึง ทุบตี และ ปิง). นี่เป็นข้อแตกต่างที่เห็นได้ชัดจากสองกรณีก่อนหน้านี้


เมื่อฉันทำแบบฝึกหัดที่สอดคล้องกับ เอ็กซ์เทอมจะมีโปรเซสแยกต่างหากชื่อ 'xterm'

  • เมื่อฉัน ทางออก ฉันกำลังจะออกจาก ทุบตี ทำงานในหน้าต่างเทอร์มินัลและ ปิง ยังคงทำงาน แต่ไม่มีที่จะเขียน

  • เมื่อฉัน ฆ่า กระบวนการที่ฉันฆ่า เอ็กซ์เทอม กระบวนการของหน้าต่างเทอร์มินัล (ซึ่งจะบังคับให้กระบวนการลูกหยุดทำงาน รวมถึง ทุบตี และ ปิง).

  • เมื่อฉันปิดหน้าต่าง (ด้วยปุ่ม x) ฉันออกจากกระบวนการของหน้าต่าง (ซึ่งจะบังคับให้กระบวนการลูกหยุดทำงาน รวมถึง ทุบตี และ ปิง).


คุณรู้แล้วว่าคุณสามารถใช้ ไม่อัพ (ร่วมกับ &) หากคุณต้องการให้กระบวนการลูกดำเนินต่อไปหลังจากปิดหน้าต่างเทอร์มินัล ซึ่งกระบวนการลูกเริ่มต้นขึ้น


แก้ไข 1: ความคิดเห็นสุดท้าย:

จาก ผู้ชายทุบตี

ถ้าคำสั่งถูกยกเลิกโดยผู้ดำเนินการควบคุม &, เชลล์ ดำเนินการคำสั่งในพื้นหลังในเชลล์ย่อย เปลือกไม่ ไม่รอให้คำสั่งเสร็จสิ้น และสถานะการส่งคืนจะเป็น 0

เราสังเกตเห็นว่าไม่มีสัญญาณที่จะหยุด subshell และกระบวนการเริ่มต้นใน/จาก subshell นั้นเมื่อใด ทุบตี ออก อย่างน้อยไม่ใช่เมื่อรันในหน้าต่างเทอร์มินัล แต่หน้าต่างเทอร์มินัลการโทรปิดอยู่ ฉันคิดว่าหลังจากออกจาก bash แล้ว หน้าต่างเทอร์มินัลจะไม่รู้จัก subshell อีกต่อไป และกระบวนการเริ่มต้นใน/จาก subshell นั้น ดังนั้นจึงไม่สามารถหยุดพวกมันได้

แก้ไข 2: ฉันขอความช่วยเหลือที่ Unix & Linux - โปรดอ่านคำตอบ.

Score:0
ธง pe

กระบวนการเปิดตัวเช่นนี้ ./myprocess & เป็นลูกของพ่อแม่ ทุบตี กระบวนการเปิดโดยโปรแกรมเทอร์มินัล สัญลักษณ์ & จะไม่ช่วยให้คุณปิดหน้าต่างเทอร์มินัลก่อนสิ้นสุดกระบวนการที่ยาวนาน

สิ่งที่คุณกำลังมองหาคือคำสั่ง ไม่อัพ

ผู้ใช้ @ โฮสต์: ~ $ nohup bash -c '/path/to/myprocess'

ข้อมูลเพิ่มเติม : http://manpages.ubuntu.com/manpages/impish/en/man1/nohup.1.html
ตัวอย่างบางส่วน: https://linuxhint.com/nohup_command_linux/

Saad Abdul Majid avatar
br flag
ฉันแค่ต้องรู้เหตุผลที่อยู่เบื้องหลังการสังเกตของฉัน เพื่อให้เข้าใจถึงสิ่งที่ฉันสังเกต ฉันคิดว่ามันเกี่ยวกับสัญญาณที่ส่งไปยังกระบวนการ
pe flag
@Saad Abdul Majid: ดูส่วนแรกของคำตอบของฉัน การปิดหน้าต่างเทอร์มินัลจะฆ่ากระบวนการทุบตีพาเรนต์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา