คำถามติดแท็ก background-process

กระบวนการ 'เบื้องหลัง' เป็นกระบวนการคอมพิวเตอร์ที่เรียกใช้ "เบื้องหลัง" (เช่นในพื้นหลัง) และไม่มีการแทรกแซงจากผู้ใช้ งานทั่วไปสำหรับการใช้กระบวนการดังกล่าวรวมถึงการบันทึกการตรวจสอบระบบการตั้งเวลาและการแจ้งเตือนผู้ใช้ ใช้แท็กนี้สำหรับคำถามใด ๆ เกี่ยวกับกระบวนการพื้นหลัง

4
Bash จะให้กระบวนการพื้นหลังทำงานอย่างไร แต่รอให้กระบวนการอื่น ๆ ทำงาน
ฉันมี (ยัง) อีกwait, &, &&คำถามการควบคุมการไหล .. ว่าฉันมีสคริปต์บางอย่างเช่นนี้ที่ฉันต้องการทำงานมากที่สุดในเวลาเดียวกันเป็นไปได้: # may take some hours something InputA > IrrelevantA & something InputB > IrrelevantB & # may take an hour ( somethingElse InputA > OutputA & somethingElse InputB > OutputB & )&& combine OutputA OutputB > Result ...morestuff คำถามที่ 1: ในสคริปต์combineรอให้somethingElseกระบวนการทั้งสองเสร็จสิ้นในขณะที่somethingกระบวนการทั้งสองดำเนินการต่อหรือไม่ คำถามที่ 2: …

2
เหตุใดขณะหนึ่งลูปจึงหยุดหลังจากถูกระงับ
ทำไมการใช้ bash และหยุดชั่วขณะหนึ่งวงจึงหยุดลงหลังจากกลับมาทำงานต่อ ตัวอย่างสั้น ๆ ด้านล่าง $ while true; do echo .; sleep 1; done . . ^Z [1]+ Stopped sleep 1 $ fg sleep 1 $ ฉันคุ้นเคยกับสัญญาณและฉันเดาว่านี่อาจเป็นพฤติกรรมตามธรรมชาติของการทุบตีที่นี่ แต่ฉันต้องการที่จะเข้าใจมากขึ้นว่าทำไมมันทำงานในลักษณะนี้โดยเฉพาะ

1
สะท้อนความคืบหน้าจากกระบวนการพื้นหลังโดยไม่ต้องไฮแจ็ก
พิจารณาสคริปต์ง่าย ๆhello: #!/bin/bash echo 'hello world!' ตอนนี้จากทุบตีถ้าฉันพยายามเรียกใช้ในพื้นหลัง: $ hello & [1] 12345 $ hello world! █ <--- prompt is stuck here until I hit enter! [1]+ Done $ █ <--- prompt back to normal สิ่งที่ฉันอยากเห็น: $ hello & [1] 12345 [1]+ hello world! [1]+ Done $ █ <--- prompt normal …

4
ยุติกระบวนการพื้นหลังทั้งหมด
ฉันมีStoppedกระบวนการพื้นหลังเล็กน้อย kill $(jobs -p)และkill `jobs -p`ไม่มีผลกระทบ kill %1, kill %2ฯลฯ ประสบความสำเร็จในการยกเลิกแต่ละกระบวนการ ฉันจะฆ่าทุกกระบวนการพื้นหลังด้วยคำสั่งเดียวได้อย่างไร นอกจากนี้ทำไมสองคำสั่งแรกไม่ทำงานสำหรับฉัน ฉันใช้ Linux Mint 15, 64 บิต

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

1
เหตุใดกระบวนการพื้นหลังของ nohup จึงถูกฆ่า?
ฉันพยายามเริ่มเชลล์สคริปต์ผ่านเซสชันระยะไกลซึ่งเริ่มกระบวนการในพื้นหลังโดยใช้คำสั่ง nohup python3 run.py > nohup.out & เมื่อปิดเซสชันระยะไกลกระบวนการกำลังถูกฆ่าด้วยข้อความ: จับสัญญาณ SIGHUP พบ SIGHUP แล้ว แต่ไม่ได้รับการทำผิด ออกจาก ฉันไม่เข้าใจ ทำไมกระบวนการการฆ่าเมื่อมันถูกเริ่มต้นในพื้นหลังโดยใช้nohup & ?

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

3
“ แปรปรวน” เครื่องหมายและ (พื้นหลังกระบวนการ)
ฉันต้องการทราบว่ามีวิธีที่จะใส่เครื่องหมายและในตัวแปรและยังใช้เพื่อส่งกระบวนการไปยังพื้นหลัง งานนี้: BCKGRND=yes if [ "$BCKGRND" = "yes" ]; then sleep 5 & else sleep 5 fi แต่มันจะไม่เจ๋งมั้ยที่จะบรรลุห้าสายเหล่านั้นด้วยเพียงอันเดียว? ชอบมาก BCKGRND='&' sleep 5 ${BCKGRND} แต่นั่นไม่ได้ผล หาก BCKGRND ไม่ได้ตั้งค่าให้ใช้งานได้ แต่เมื่อตั้งค่ามันจะตีความว่าเป็นตัวอักษร '&' และข้อผิดพลาด

6
(bash) สคริปต์ A รอสคริปต์ B แต่ไม่ใช่กระบวนการลูก
ดังนั้นฉันจึงมี scriptA ซึ่ง: ssh server1 -- scriptB & ssh server2 -- scriptB & ssh server3 -- scriptB & wait otherstuffhappens ScriptB ทำ: rsync -av /important/stuff/. remoteserver:/remote/dir/. rsync -av /not/so/important/stuff/. remoteserver:/remote/dir/. & exit ผลลัพธ์ที่ฉันต้องการคือ scriptA จะรอให้อินสแตนซ์ทั้งหมดของ scriptB เสร็จสิ้นก่อนที่จะดำเนินการต่อไปซึ่งมันทำอยู่ในขณะนี้ ไฟล์เหล่านี้เป็นไฟล์ขนาดใหญ่ที่ฉันไม่ต้องการรอ ฉันได้อ่านความแตกต่างระหว่าง nohup, บอกเลิกและ &และลองชุดค่าผสมที่แตกต่างกัน แต่ฉันไม่ได้รับผลลัพธ์ที่ต้องการ ณ จุดนี้ฉันค่อนข้างนิ่งงัน ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

5
วิธีเริ่มโปรแกรมในพื้นหลัง
โปรแกรมBoblightไม่ทำงานในพื้นหลัง ไม่มีความแตกต่างที่เห็นได้ชัดเจนระหว่างการดำเนินการ sudo boblightd และ sudo boblightd& ฉันจะแก้ปัญหานี้ได้อย่างไรว่าคอนโซลจะไม่ปิดกั้นอินพุตเพิ่มเติม pi@raspberrypi ~/boblight/boblightd-for-raspberry-master $ sudo boblightd Boblightd 2.0 (optimized version for raspberry) (c) 2013 Speedy1985 and Heven) (InitLog) start of log /root/.boblight/boblightd.log (PrintFlags) starting boblightd (CConfig::LoadConfigFromFile) opening /etc/boblight.conf (CConfig::CheckConfig) checking config lines (CConfig::CheckConfig) config lines valid (CConfig::BuildConfig) building config (CConfig::BuildConfig) built config successfully …

1
สิ่งใดที่มีความสำคัญเหนือกว่าในการปฏิบัติภารกิจเบื้องหลัง
สองตัวอย่างที่ฉันมีคือ: echo hi & และ: (echo hi &) ครั้งแรกจะให้รหัสกระบวนการเป็นผลตอบแทน (เช่น"[1] 5627") ซึ่งการเพิ่มตัวดำเนินการที่มีความสำคัญนำสิ่งนี้ออก เกิดอะไรขึ้นที่จะทำให้สิ่งนี้? นอกจากนี้ยังมีวิธีการเพิ่มลำดับความสำคัญ แต่ยังมีงานพื้นหลังรายงานรหัสกระบวนการของพวกเขา?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.