คำถามติดแท็ก daemon

daemon คือกระบวนการหรือโปรแกรมที่ทำงานอยู่เบื้องหลัง (กล่าวคือไม่ต้องการให้ผู้ใช้โต้ตอบ)

26
ฉันจะรันแอป node.js เป็นบริการพื้นหลังได้อย่างไร
เนื่องจากโพสต์นี้ได้รับความสนใจเป็นอย่างมากในช่วงหลายปีที่ผ่านมาฉันได้แสดงโซลูชันยอดนิยมสำหรับแต่ละแพลตฟอร์มที่ด้านล่างของโพสต์นี้ โพสต์ต้นฉบับ : ฉันต้องการให้เซิร์ฟเวอร์ node.js ทำงานในพื้นหลังเช่นเมื่อปิดเทอร์มินัลฉันต้องการให้เซิร์ฟเวอร์ทำงานต่อไป ฉันได้ลองทำสิ่งนี้และมาพร้อมกับบทช่วยสอนนี้แต่มันไม่ทำงานตามที่ตั้งใจ ดังนั้นแทนที่จะใช้สคริปต์ daemon นั้นฉันคิดว่าฉันเพิ่งใช้การเปลี่ยนเส้นทางเอาต์พุต ( 2>&1 >> fileส่วน) แต่สิ่งนี้ก็ไม่ได้จบ - ฉันได้รับบรรทัดว่างในเทอร์มินัลของฉันเหมือนกับว่ามันรอเอาต์พุต / ข้อผิดพลาด ฉันก็พยายามที่จะทำให้กระบวนการในพื้นหลัง แต่ทันทีที่ฉันปิด terminal ของฉันกระบวนการก็ถูกฆ่าเช่นกัน ดังนั้นฉันจะปล่อยให้มันทำงานอย่างไรเมื่อฉันปิดเครื่องคอมพิวเตอร์ของฉัน โซลูชันยอดนิยม : Systemd (Linux) Launchd (Mac) โหนดหน้าต่าง (Windows) PM2 (Node.js)


7
จะเริ่มกระบวนการพื้นหลังใน Python ได้อย่างไร
ฉันพยายามที่จะพอร์ตเชลล์สคริปต์ไปยังรุ่นหลามอ่านได้มากขึ้น เชลล์สคริปต์ดั้งเดิมเริ่มต้นกระบวนการหลายอย่าง (ยูทิลิตีมอนิเตอร์ ฯลฯ ) ในเบื้องหลังด้วย "&" ฉันจะได้รับเอฟเฟกต์เดียวกันในงูหลามได้อย่างไร? ฉันต้องการให้กระบวนการเหล่านี้ไม่ตายเมื่อสคริปต์ไพ ธ อนเสร็จสมบูรณ์ ฉันแน่ใจว่ามันเกี่ยวข้องกับแนวคิดของภูต แต่อย่างใด แต่ฉันไม่สามารถหาวิธีการได้อย่างง่ายดาย
295 python  process  daemon 

23
คำสั่ง Docker ไม่สามารถเชื่อมต่อกับ Docker daemon ได้
ฉันต้องการย้ายไปที่ Docker ดังนั้นฉันเพิ่งเริ่มยุ่งกับมัน ฉันได้ติดตั้ง Docker ในการติดตั้ง VirtualBox Ubuntu 15.10 (Wily Werewolf) และตามที่แนะนำที่นี่ฉันลองใช้อิมเมจnginx Docker พื้นฐาน: $ docker run --name mynginx1 -P -d nginx Cannot connect to the Docker daemon. Is the docker daemon running on this host? ดังนั้นฉันตรวจสอบว่านักเทียบท่ากำลังทำงานอยู่หรือไม่: $ sudo service docker status ● docker.service - Docker Application Container Engine Loaded: …
246 linux  ubuntu  docker  daemon 

16
คุณจะสร้าง daemon ใน Python ได้อย่างไร
การค้นหาใน Googleพบว่ามีโค้ดขนาด x2 ผลลัพธ์แรกคือสูตรรหัสนี้ซึ่งมีเอกสารและคำอธิบายมากมายพร้อมกับการสนทนาที่มีประโยชน์ภายใต้ อย่างไรก็ตามตัวอย่างรหัสอื่นในขณะที่ไม่มีเอกสารประกอบมากให้รวมตัวอย่างรหัสสำหรับการส่งคำสั่งเช่นเริ่มหยุดและเริ่มต้นใหม่ นอกจากนี้ยังสร้างไฟล์ PID ซึ่งมีประโยชน์สำหรับการตรวจสอบว่า daemon กำลังทำงานอยู่หรือไม่ ตัวอย่างทั้งสองอธิบายวิธีสร้าง daemon มีสิ่งใดเพิ่มเติมที่ต้องพิจารณาอีกหรือไม่ ตัวอย่างหนึ่งดีกว่าอีกตัวอย่างหนึ่งและเพราะอะไร
244 python  daemon 

7
Daemon เธรดคำอธิบาย
ในเอกสารประกอบของ Python มันบอกว่า: เธรดสามารถถูกแฟล็กเป็น "daemon thread" ความสำคัญของการตั้งค่าสถานะนี้คือโปรแกรม Python ทั้งหมดจะออกเมื่อเหลือเพียง daemon thread เท่านั้น ค่าเริ่มต้นจะสืบทอดมาจากการสร้างหัวข้อ ใครบ้างมีคำอธิบายที่ชัดเจนของสิ่งที่หมายถึงหรือตัวอย่างในทางปฏิบัติแสดงให้เห็นว่าคุณจะตั้งหัวข้อเป็นdaemonic? ชี้แจงให้ฉัน: ดังนั้นสถานการณ์เดียวที่คุณจะไม่ตั้งกระทู้เป็นdaemonicคือเมื่อคุณต้องการให้พวกเขาทำงานต่อไปหลังจากที่ออกจากหัวข้อหลัก?

7
วิธีการประมวลผลสัญญาณ SIGTERM อย่างสง่างาม?
สมมติว่าเรามีดีมอนตัวเล็ก ๆ เขียนในไพ ธ อน: def mainloop(): while True: # 1. do # 2. some # 3. important # 4. job # 5. sleep mainloop() และเรา daemonize โดยใช้start-stop-daemonซึ่งเริ่มต้นโดยส่งSIGTERM( TERM) --stopสัญญาณ #2สมมติว่าขั้นตอนการดำเนินการในปัจจุบันมี และในขณะนี้เรากำลังส่งTERMสัญญาณ สิ่งที่เกิดขึ้นคือการกระทำนั้นสิ้นสุดลงทันที ฉันพบว่าฉันสามารถจัดการเหตุการณ์สัญญาณใช้แต่สิ่งที่เป็นว่ามันยังคงขัดจังหวะการดำเนินการในปัจจุบันและผ่านการควบคุมไปsignal.signal(signal.SIGTERM, handler)handler ดังนั้นคำถามของฉันคือ - เป็นไปได้หรือไม่ที่จะไม่ขัดจังหวะการทำงานปัจจุบัน แต่จัดการTERMสัญญาณในเธรดที่แยกจากกัน (?) เพื่อให้ฉันสามารถตั้งค่าshutdown_flag = Trueเพื่อให้mainloop()มีโอกาสหยุดอย่างสง่างาม?

16
ฉันจะรันแอปพลิเคชัน Node.js เป็นกระบวนการของตัวเองได้อย่างไร
วิธีที่ดีที่สุดในการปรับใช้ Node.js คืออะไร ฉันมี Dreamhost VPS (นั่นคือสิ่งที่พวกเขาเรียกว่าVM ) และฉันสามารถติดตั้ง Node.js และตั้งค่าพร็อกซีได้ มันใช้งานได้ดีตราบใดที่ฉันรักษาการเชื่อมต่อ SSH ที่ฉันเริ่มโหนดด้วยการเปิด

9
อะไรคือสาเหตุของการทำ double fork เมื่อสร้าง daemon?
ฉันพยายามสร้างภูตในหลาม ฉันได้พบคำถามต่อไปนี้ซึ่งมีแหล่งข้อมูลที่ดีอยู่ในนั้นซึ่งฉันกำลังติดตามอยู่ แต่ฉันอยากรู้ว่าเหตุใดจึงจำเป็นต้องใช้ส้อมคู่ ฉันมีรอยขีดข่วนรอบ ๆ google และพบว่ามีทรัพยากรมากมายประกาศว่าจำเป็น แต่ไม่ใช่เหตุผล บางคนพูดถึงว่ามันคือการป้องกันไม่ภูตจากการซื้อสถานีควบคุม ว่ามันจะทำเช่นนี้ได้โดยไม่ต้องแยกสอง? อะไรคือผลกระทบหรือไม่
165 python  unix  daemon 

14
เรียกใช้สคริปต์ php เป็นกระบวนการ daemon
ฉันต้องการเรียกใช้สคริปต์ php เป็นกระบวนการ daemon (รอคำแนะนำและทำสิ่งต่างๆ) งาน cron จะไม่ทำเพื่อฉันเพราะการกระทำจะต้องดำเนินการทันทีที่คำสั่งมาถึง ฉันรู้ว่า PHP ไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับกระบวนการภูตเนื่องจากปัญหาการจัดการหน่วยความจำ แต่เนื่องจากเหตุผลต่าง ๆ ที่ฉันต้องใช้ PHP ในกรณีนี้ ฉันเจอเครื่องมือโดย libslack ชื่อ Daemon ( http://libslack.org/daemon ) ดูเหมือนว่าจะช่วยฉันจัดการกระบวนการ daemon แต่ไม่มีการปรับปรุงใด ๆ ในช่วง 5 ปีที่ผ่านมาดังนั้นฉันจึงสงสัยว่าคุณรู้ไหม ทางเลือกอื่น ๆ ที่เหมาะสมสำหรับกรณีของฉัน ข้อมูลใด ๆ ที่จะได้รับการชื่นชมจริงๆ
154 php  linux  unix  daemon 

6
รับ pids จาก ps -ef | grep keyword
ฉันต้องการใช้ps -ef | grep "keyword"เพื่อกำหนด pid ของกระบวนการ daemon (มีสตริงเฉพาะในเอาต์พุต ps -ef อยู่ในนั้น) ฉันสามารถฆ่ากระบวนการโดยpkill keywordมีคำสั่งใดที่ส่งคืน pid แทนการฆ่ามันหรือไม่? (pidof หรือ pgrep ไม่ทำงาน)
111 linux  shell  daemon 

9
การสร้าง daemon ใน Linux
ใน Linux ฉันต้องการเพิ่ม daemon ที่ไม่สามารถหยุดทำงานได้และตรวจสอบการเปลี่ยนแปลงของระบบไฟล์ หากตรวจพบการเปลี่ยนแปลงใด ๆ ควรเขียนเส้นทางไปยังคอนโซลที่เริ่มต้นพร้อมกับขึ้นบรรทัดใหม่ ฉันมีรหัสการเปลี่ยนระบบไฟล์เกือบพร้อมแล้ว แต่ฉันไม่สามารถหาวิธีสร้าง daemon ได้ รหัสของฉันมาจากที่นี่: http://www.yolinux.com/TUTORIALS/ForkExecProcesses.html หลังส้อมต้องทำอย่างไร? int main (int argc, char **argv) { pid_t pID = fork(); if (pID == 0) { // child // Code only executed by child process sIdentifier = "Child Process: "; } else if (pID < …
110 c  linux  daemon 

19
ตรวจสอบดูว่าสคริปต์ python กำลังทำงานอยู่หรือไม่
ฉันมี python daemon ที่ทำงานเป็นส่วนหนึ่งของเว็บแอปของฉัน / ฉันจะตรวจสอบอย่างรวดเร็ว (โดยใช้ python) ได้อย่างไรว่า daemon ของฉันกำลังทำงานอยู่และถ้าไม่เปิดใช้งาน ฉันต้องการทำวิธีนั้นเพื่อแก้ไขข้อขัดข้องของ daemon ดังนั้นจึงไม่จำเป็นต้องเรียกใช้สคริปต์ด้วยตนเองสคริปต์จะทำงานโดยอัตโนมัติทันทีที่มีการเรียกใช้จากนั้นจึงทำงานต่อไป ฉันจะตรวจสอบ (โดยใช้ python) ได้อย่างไรว่าสคริปต์ของฉันกำลังทำงานอยู่
104 python  process  daemon 

12
ฉันจะแสดงสคริปต์โดยพลการใน unix ได้อย่างไร
ฉันต้องการ daemonizer ที่สามารถเปิดโดยพลสคริปต์ทั่วไปหรือสั่งเข้ามาเป็นภูต มีสองกรณีทั่วไปที่ฉันต้องการจัดการ: ฉันมีสคริปต์ที่ควรรันตลอดไป หากเคยตาย (หรือรีบูต) ให้รีสตาร์ท อย่าปล่อยให้สำเนาสองชุดทำงานพร้อมกัน (ตรวจสอบว่าสำเนาทำงานอยู่แล้วและไม่เปิดใช้ในกรณีนั้น) ฉันมีสคริปต์หรือคำสั่งบรรทัดคำสั่งง่ายๆที่ฉันต้องการดำเนินการซ้ำ ๆ ตลอดไป (โดยหยุดชั่วคราวระหว่างการรัน) อีกครั้งอย่าปล่อยให้สคริปต์สองสำเนาทำงานพร้อมกัน แน่นอนว่ามันเป็นเรื่องเล็กน้อยที่จะเขียน "while (true)" วนรอบสคริปต์ในกรณีที่ 2 จากนั้นใช้โซลูชันสำหรับกรณีที่ 1 แต่วิธีแก้ปัญหาทั่วไปจะแก้ปัญหากรณีที่ 2 โดยตรงเนื่องจากใช้กับสคริปต์ในกรณีที่ 1 เป็น ดี (คุณอาจต้องการหยุดชั่วคราวให้สั้นลงหรือไม่มีเลยหากสคริปต์ไม่ได้ตั้งใจที่จะตาย (แน่นอนว่าถ้าสคริปต์ไม่มีวันตายจริงๆการหยุดชั่วคราวก็ไม่สำคัญ)) โปรดทราบว่าโซลูชันไม่ควรเกี่ยวข้องกับการเพิ่มรหัสล็อกไฟล์หรือการบันทึก PID ลงในสคริปต์ที่มีอยู่ โดยเฉพาะอย่างยิ่งฉันต้องการโปรแกรม "daemonize" ที่สามารถเรียกใช้งานได้ % daemonize myscript arg1 arg2 หรือตัวอย่างเช่น % daemonize 'echo `date` >> /tmp/times.txt' ซึ่งจะทำให้รายการวันที่เพิ่มขึ้นต่อท้าย times.txt …

8
จะหยุด Jenkins ที่ติดตั้งบน Mac Snow Leopard ได้อย่างไร
ฉันได้ติดตั้ง Jenkins ปฏิบัติการบน OSX แล้ว แต่ตอนนี้ฉันต้องการหยุดการทำงาน เมื่อใดก็ตามที่ฉันฆ่ามันไม่ว่าอย่างไรมันก็รีสตาร์ททันที ฉันได้ลองใช้คำสั่ง exit ใน jenkins url: http://localhost:8080/exit ซึ่งขอให้ฉันโพสต์คำสั่งซึ่งฉันทำและเซิร์ฟเวอร์ก็ปิดตัวลงตามที่ร้องขอ แต่แล้วมันก็รีสตาร์ท ฉันได้ลองค้นหารหัสกระบวนการโดยใช้psและบังคับให้ฆ่ามัน ( kill -9 pid) และเซิร์ฟเวอร์จะปิดตัวลงทันทีตามที่ร้องขอ แต่แล้วมันก็รีสตาร์ท ฉันได้ลองปิดมันผ่าน gui แล้ว แต่ดูเหมือนจะไม่มีวิธีทำ ต้องมีภูตอยู่ที่ไหนสักแห่งทำให้เป็นคำถามทั่วไปเกี่ยวกับ OSX
92 macos  jenkins  daemon 

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