Ctrl + z ส่งงานปัจจุบันไปที่พื้นหลัง แต่หยุดทำงาน
และวิธีการทำงานต่อหยุด?
Ctrl + z ส่งงานปัจจุบันไปที่พื้นหลัง แต่หยุดทำงาน
และวิธีการทำงานต่อหยุด?
คำตอบ:
คุณสามารถเรียกใช้ "bg" เพื่อเรียกใช้ในพื้นหลัง
"fg" ย้ายไปที่พื้นหน้า
โปรดทราบว่า bg และ fg รับงาน # แทน PID ดังนั้นหากคุณมีงานหลายงานพร้อมกันให้ใช้คำสั่ง "งาน" เพื่อรับหมายเลขงาน
คุณสามารถเริ่มโปรแกรมเป็นงานพื้นหลังด้วย "&" ในบรรทัดคำสั่ง
เช่น
โปรแกรม &
โปรดทราบว่าเอาต์พุต (ทั้ง stdout และ stderr) จะยังคงไปที่ tty ปัจจุบันดังนั้นจึงเป็นความคิดที่ดีที่จะเปลี่ยนเส้นทางไปยัง / dev / null หรือไปยังไฟล์บันทึกเช่น:
myprogram> ~ / program.log 2> & 1 &
ในตัวอย่างใด ๆ มันเป็นงานพื้นหลังเหมือนกันดังนั้นคุณยังสามารถนำมันกลับมาที่เบื้องหน้าด้วย 'fg' (แต่ถ้าคุณเปลี่ยนเส้นทางผลลัพธ์คุณจะไม่เห็นอะไรมาก)
ใน bash การป้อน "bg" จะทำให้งานเข้าสู่พื้นหลังจนกว่าจะบล็อกต้องการอินพุต มันจะยังคงส่งออกไปยัง STDERR และ STDOUT ซึ่งอาจไม่ช่วยเหลือ คุณสามารถป้อน "fg" เพื่อนำงานกลับสู่เบื้องหน้า
[adjuster@mx02 ~]$ cp ~/crap/* ~/crap2
(Ctrl-Z)
[1]+ Stopped cp ~/crap ~/crap2
[adjuster@mx02 ~]$ cp ~/crap3/* ~/crap4
(Ctrl-Z)
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ jobs
[1]+ Stopped cp ~/crap ~/crap2
[2]+ Stopped cp ~/crap3/* ~/crap
[adjuster@mx02 ~]$ bg 1
[1]- cp ~/crap ~/crap2 &
[1]- Exit 1 cp ~/crap ~/crap2
[adjuster@mx02 ~]$ fg 2
[adjuster@mx02 ~]$
ดังนั้นนั่นคือการเริ่มต้นงานสำเนาที่ยาวนานและหยุดชั่วคราวเริ่มงานสำเนายาวสองครั้งและหยุดทำงานชั่วคราวจากนั้นวางงานคัดลอกแรกลงในพื้นหลังและปล่อยให้ทำงานตามด้วยงานคัดลอกแรกที่ออก จากนั้นฉันก็นำงานถ่ายสำเนาสุดท้ายไปไว้ด้านหน้าและปล่อยให้มันเสร็จ
nohup task.sh &
ทำงานในพื้นหลังเอาต์พุตไปที่ nohup.out ในไดเรกทอรีปัจจุบัน ยังคงทำงานต่อเมื่อคุณออกจากระบบ
ตัวเลือกอื่นคือยูทิลิตี้หน้าจอที่ยอดเยี่ยมซึ่งสามารถใช้เพื่อเรียกใช้กระบวนการหลายอย่างในเวลาเดียวกันโดยไม่ต้องเปิดเครื่องเทอร์มินัล นอกจากนี้ยังช่วยให้สามารถโต้ตอบได้ง่ายกว่า bg และ fg
bg 1
และfg 1
ไม่ทำงานสำหรับฉัน แต่bg %1
และfg %1
ทำ