วิธีเรียกใช้โปรแกรมต่อไปจะตรวจสอบการฆ่าเชลล์ซึ่งเรียกใช้


2

ซ้ำได้:
ปล่อยให้สคริปต์ทุบตีทำงานใน terminal ระยะไกลในขณะที่ไม่ได้เข้าสู่ระบบ?

สวัสดีทุกคน, ฉันเรียกใช้โปรแกรมพูด ./a.out 10 จากเชลล์พรอมต์ สมมติว่ามี while(1) ภายในโปรแกรมที่กำลังทำงาน ตอนนี้ถ้าฉันพยายามปิดเชลล์มันเตือนฉันว่ามันจะฆ่าโปรแกรมที่กำลังรันอยู่ด้วย! ดังนั้นวิธีฆ่าเชลล์และยังให้โปรแกรมของฉันทำงานในพื้นหลังต่อไป?

ฉันเหนื่อย exec ./a.out 10 แต่เปลือกยังคงอยู่ที่นั่น อีกทางเลือกหนึ่งคือเพียงแค่ดับเบิลคลิกที่ไฟล์ปฏิบัติการของฉัน แต่ฉันจะส่งพารามิเตอร์บรรทัดคำสั่งได้อย่างไร


1
คำถามเดียวกันที่นี่: superuser.com/questions/282350/... ด้วยคำตอบที่ดีถูกปิดเหมือนซ้ำ superuser.com/questions/111631/... .
peth

คำตอบ:


8

nohup เป็นคำสั่ง POSIX เพื่อละเว้นสัญญาณ HUP (hangup) ทำให้การใช้งานคำสั่งยังคงทำงานหลังจากผู้ใช้ที่ออกคำสั่งออกจากระบบ สัญญาณ HUP (hangup) คือการกำหนดวิธีที่เทอร์มินัลเตือนขึ้นอยู่กับกระบวนการของการออกจากระบบ

ใช้ nohup :

$ nohup ./a.out 10 &
$ exit

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