ฉันกำลังพยายามใช้เชลล์สคริปต์เพื่อเริ่มคำสั่ง ฉันไม่สนใจว่า / เมื่อไหร่ / อย่างไร / ทำไมมันจบ ฉันต้องการให้กระบวนการเริ่มต้นและทำงาน แต่ฉันต้องการกลับไปที่เชลล์ของฉันทันที ...
nohup
, &
และdisown
, คลิกที่นี่เพื่อเลื่อนไปที่คำตอบที่สี่
ฉันกำลังพยายามใช้เชลล์สคริปต์เพื่อเริ่มคำสั่ง ฉันไม่สนใจว่า / เมื่อไหร่ / อย่างไร / ทำไมมันจบ ฉันต้องการให้กระบวนการเริ่มต้นและทำงาน แต่ฉันต้องการกลับไปที่เชลล์ของฉันทันที ...
nohup
, &
และdisown
, คลิกที่นี่เพื่อเลื่อนไปที่คำตอบที่สี่
คำตอบ:
คุณสามารถเรียกใช้สคริปต์ในพื้นหลัง:
$ myscript &
โปรดทราบว่าสิ่งนี้แตกต่างจากการใส่ไว้&
ในสคริปต์ของคุณซึ่งอาจไม่ทำตามที่คุณต้องการ
&
อยู่ในสคริปต์และคุณไม่มีwait
คำสั่งพื้นหลังจะถูกฆ่าเมื่อสคริปต์ออก
myscript
ปรับเปลี่ยนสภาพแวดล้อมเทอร์มินัลเช่น มันเป็นคำสั่งเริ่มต้นเทอร์มินัลที่ไม่จำเป็นในทันทีและอาจล่าช้าคำสั่งนี้จะยังคงแก้ไขสภาพแวดล้อมเทอร์มินัลหรือไม่
ทุกคนก็ลืมdisown
ไป ดังนั้นนี่คือบทสรุป:
&
ทำให้งานอยู่เบื้องหลัง
disown
ลบกระบวนการออกจากการควบคุมงานของเชลล์ แต่ยังคงปล่อยให้กระบวนการเชื่อมต่อกับเทอร์มินัล
SIGHUP
(หากเชลล์ได้รับ a SIGHUP
มันจะส่งไฟล์SIGHUP
ไปยังกระบวนการด้วยซึ่งโดยปกติจะทำให้กระบวนการยุติลง)nohup
ยกเลิกการเชื่อมต่อกระบวนการจาก terminal, เปลี่ยนเส้นทางการส่งออกไปยังและโล่จากnohup.out
SIGHUP
SIGHUP
ที่ส่ง&
(เป็นงานพื้นหลัง)disown
Debian หรือ OS X ฉันคิดว่ามันเป็นโปรแกรม แต่ดูเหมือนว่าฉันจะเข้าใจผิด มันคืออะไร?
nohup cmd
ไม่แฮงค์เมื่อคุณปิดเครื่อง เอาต์พุตตามค่าเริ่มต้นไปที่ nohup.out
คุณสามารถรวมสิ่งนี้เข้ากับพื้นหลัง
nohup cmd &
และกำจัดผลลัพธ์
nohup cmd > /dev/null 2>&1 &
คุณยังสามารถdisown
สั่ง พิมพ์cmd
, Ctrl-Z
, bg
,disown
tail nohup.out
ซึ่งจะแสดง 10 บรรทัดสุดท้ายของเอาต์พุตคำสั่ง ฉันใช้สิ่งนี้สำหรับงานสำรองข้อมูล rsync เพื่อดูว่าไฟล์นั้นอยู่ที่ไฟล์ใด
jobs
กับ
หรืออีกวิธีหนึ่งหลังจากที่คุณเรียกใช้โปรแกรมแล้วคุณสามารถกด Ctrl-Z ซึ่งจะหยุดโปรแกรมของคุณแล้วพิมพ์
bg
ซึ่งทำให้โปรแกรมที่หยุดล่าสุดของคุณอยู่เบื้องหลัง (มีประโยชน์หากคุณเริ่มต้นบางสิ่งโดยไม่มี '&' และยังคงต้องการให้อยู่ในส่วนหลังโดยไม่ต้องรีสตาร์ท)
screen -m -d $command$
เริ่มคำสั่งในเซสชันแยก คุณสามารถใช้screen -r
แนบกับเซสชันที่เริ่มต้น เป็นเครื่องมือที่ยอดเยี่ยมมีประโยชน์อย่างยิ่งสำหรับการประชุมระยะไกล อ่านเพิ่มเติมได้ที่man screen
.