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

โปรแกรมคอมพิวเตอร์ที่ทำงานเป็นกระบวนการเบื้องหลังแทนที่จะอยู่ภายใต้การควบคุมโดยตรงของผู้ใช้แบบโต้ตอบ

1
ตำแหน่งที่เป็นสำนวนสำหรับซ็อกเก็ตฐานไฟล์บนระบบ Debian
ผมเขียนกระบวนการภูตสำหรับระบบ Debian ในCที่ใช้โดเมนซ็อกเก็ตยูนิกซ์ หากไดเร็กทอรีการทำงานของกระบวนการ daemon เป็นไดเร็กทอรีรูทจะมีไดเร็กทอรีที่เป็นเอกลักษณ์เพื่อวางซ็อกเก็ตบนระบบไฟล์หรือไม่?

3
วิธีการตั้งค่าการปรับ OOM killer สำหรับ daemons อย่างถาวร
ใช้เซิร์ฟเวอร์ Linux บางตัวที่มี daemons บริการระบบเพียงครั้งเดียวหรือเพียงไม่กี่ตัวฉันต้องการปรับ OOM killer สำหรับกระบวนการ daemonized เหล่านั้นในกรณีที่มีสิ่งผิดปกติเกิดขึ้น ตัวอย่างเช่นวันนี้เซิร์ฟเวอร์ Ubuntu บางตัวที่ใช้งาน MySQL ได้ถูกทำลายไปแล้วเพราะมีapt-checkerกระบวนการมากมายที่ต้องใช้หน่วยความจำทั้งหมดและเคอร์เนลคิดว่าเป็นความคิดที่ดีที่จะฆ่า MySQL ฉันรู้ว่าฉันสามารถปรับคะแนนโดยใช้/proc/$(pidof mysqld)/oom_score_adjไฟล์เพื่อให้เคอร์เนลเบาะแสบางอย่างที่ฉันไม่ต้องการให้ MySQL ถูกฆ่า แต่นั่นก็ไม่รอดการรีสตาร์ทบริการ ฉันควรแก้ไขสคริปต์ init / upstart จากแพ็คเกจเพื่อรวมการปรับเปลี่ยนเหล่านี้หรือไม่ ฉันไม่คิดว่ามันเป็นทางออกที่หรูหรามากเพราะฉันจะทำการปรับเปลี่ยนไฟล์ที่เป็นของแพ็คเกจ เป็นไปได้ไหมที่จะขอใช้งานสคริปต์เริ่มต้น / เริ่มต้นโดยทั่วไปและปรับตามเงื่อนไข หรือคุณอยากแนะนำให้ใช้สคริปต์ที่ไม่มีกำหนดเช่นนี้while true{ adjust_oom(); sleep 60;}?

3
วิธีตั้งค่าสคริปต์ให้ทำงานเมื่อพอร์ตได้รับข้อความ
ฉันสงสัยว่าจะได้รับเชลล์สคริปต์เพื่อฟังบนพอร์ตบางอย่าง (อาจใช้ netcat?) หวังว่าเมื่อข้อความถูกส่งไปยังพอร์ตนั้นสคริปต์จะบันทึกข้อความและเรียกใช้ฟังก์ชัน ตัวอย่าง: คอมพิวเตอร์ 1 มีสคริปต์ที่ทำงานในพื้นหลังสคริปต์เปิดพอร์ต 1234 เพื่อรับส่งข้อมูลขาเข้า คอมพิวเตอร์ 2 ส่งข้อความ "hello world" ไปยังพอร์ต 1234 ของคอมพิวเตอร์ 1 สคริปต์บนคอมพิวเตอร์ 1 บันทึกข้อความ "hello world" ไปยังตัวแปร $ MESSAGE สคริปต์เรียกใช้ฟังก์ชันตอนนี้ตัวแปร $ MESSAGE ถูกตั้งค่าแล้ว ฉันจะบริจาคได้อย่างไร

1
เหตุใด“ su -c <command> &” จึงอนุญาตให้คำสั่งทำงานในพื้นหลังโดยไม่ต้องวางสาย
ฉันช่วยเพื่อนร่วมงานที่กำลังมีปัญหากับกระบวนการพื้นหลังที่กำลังจะตายเป็นระยะ ฉันพบว่าพวกเขาเริ่มกระบวนการพื้นหลังด้วยการเข้าสู่เซิร์ฟเวอร์และดำเนินการ: su - &lt;user&gt; -c '&lt;command&gt;' &amp; "Aha" ฉันอุทาน "ถ้าคุณเริ่มต้นคำสั่งด้วย" &amp; "คำสั่งจะวางสายเมื่อคุณออกจากเทอร์มินัลการควบคุมคุณต้องใช้บางอย่างเช่น nohup เพื่อให้บรรลุสิ่งนี้จริง ๆ แล้วกระบวนการนี้ต้องรองรับการทำงานเป็น daemon, tut tut" เราทดสอบคำสั่งข้างต้นเพื่อแสดงให้เห็นถึงจุดของฉันและ ... มันดูเหมือนจะทำงาน: กระบวนการเริ่มต้นโดยคำสั่งไม่ได้ออกเมื่อเราออกจากสถานีที่วิ่งคำสั่งดังกล่าว commandเป็นสคริปต์ Python ที่กำหนดเองซึ่งเอาต์พุตไปที่ไฟล์ เท่าที่ฉันสามารถบอกได้ไม่มี "daemonize" ที่ชาญฉลาดเหมือนความสามารถในสคริปต์ มันไม่ได้ทำสิ่งใด ๆ ที่จำเป็นในการใช้งานเป็น daemon ที่ระบุไว้ในWikipedia: Daemon (คำนวณ):หน้าสร้าง การรันคำสั่งเช่นนั้นจะทำงานตามที่คาดไว้: &lt;command&gt; &amp; exit ในกรณีข้างต้นกระบวนการพื้นหลังเริ่มต้นโดยคำสั่งออกเมื่อเราออกจากสถานี คำถามของฉันคือ: เกิดอะไรขึ้นเมื่อเราเพิ่ม "su - -c &amp;" ที่ป้องกันไม่ให้กระบวนการออกจากเมื่อเครื่องของเราออก ฉันต้องการที่จะเข้าใจในรายละเอียดเกี่ยวกับสถานีควบคุมอินพุตมาตรฐานและเอาท์พุท …

3
มี daemon ต่อผู้ใช้ไหม
ฉันต้องเรียกใช้กระบวนการพื้นหลังบางอย่างที่มีชีวิตอยู่ตราบใดที่ฉันเข้าสู่ระบบด้วยผู้ใช้บางคน มีบางสิ่งที่เหมือน daemon ต่อผู้ใช้หรือไม่ ฉันรู้เพียง daemons ทั่วโลกที่อยู่จากการเริ่มต้นคอมพิวเตอร์ 'จนกระทั่งปิด (หรือเริ่มต้น / ฆ่าด้วยตนเอง) สำหรับตอนนี้ฉันได้สร้างสคริปต์ที่ตรวจสอบว่ากระบวนการนั้นมีอยู่แล้วและสร้างกระบวนการหากไม่มี สคริปต์นี้จะมีการเรียกใช้แล้วที่มีคำสั่งจากฉันnohup .profileวิธีนี้กระบวนการเปิดตัวเมื่อเริ่มต้นและจะเปิดตัวเพียงครั้งเดียว (แม้จะมีหลายrxvtคำมาและไป) กระนั้นก็ไม่เคยถูกฆ่าหลังจากฉันเข้าสู่ระบบ (ซึ่งไม่ใช่ภัยพิบัติ แต่ก็สะอาดกว่าที่จะยุติกระบวนการ)

5
ความแตกต่างระหว่าง udev และ hald คืออะไร?
ฉันเพิ่งเริ่มดำดิ่งลงไปใน internals ของ Linux และฉันสงสัยว่าอะไรคือความแตกต่างระหว่าง udev และ hal daemon จากสิ่งที่ฉันรวบรวมมาทั้งคู่ดูเหมือนจะมีหน้าที่รับผิดชอบในการจัดการอุปกรณ์ที่เสียบได้อย่างร้อนแรง ... เป็นที่นิยมใช้โดย udev ในการฟังหรือเป็นสองสิ่งที่แยกจากกันหรือไม่
11 udev  daemon 

1
กำหนดค่า java daemon ด้วย systemd
ฉันกำลังใช้คำจำกัดความนี้สำหรับsystemdงาน: [Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target สคริปต์ถูกเรียกใช้ดังต่อไปนี้ (การเรียกรูทีนแบบง่ายที่ฟังบนซ็อกเก็ต tcpip และผนวกอินพุตกับไฟล์): #!/bin/sh cd /home/user/tmp/testout nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar &lt;/dev/null &gt;/dev/null &amp; หลังจากsystemctl start somejobกระบวนการแสดงว่ากำลังทำงานพร้อมกับพาเรนต์init: user@CANTANDO ~$ ps -u dlt eo pid,ppid,command PID PPID COMMAND 8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar หลังจากดำเนินการsystemctl stop somejobตามกระบวนการจะไม่ปรากฏอีกต่อไป (และปิดพอร์ต) ดังนั้นทุกอย่างจึงดูดีและสวยงาม คำถามของฉันคือ: นี่เป็นวิธีแก้ปัญหาที่ยอมรับได้สำหรับการเรียกใช้จาวาดีมอนsystemdหรือมีคำเตือนหรือไม่
11 systemd  java  daemon 

1
ไม่สามารถรีสตาร์ท daemon เครือข่าย
เมื่อฉันพิมพ์sudo service networking restartฉันได้รับข้อผิดพลาดตามที่แสดงด้านล่าง: edward@computer:~$ sudo service networking restart stop: Job failed while stopping start: Job is already running: networking มีข้อผิดพลาดนี้เมื่อฉันต้องการรีสตาร์ทnetworkingหลังจากเปลี่ยนที่อยู่ mac และหลังจากตั้งค่า IP แบบคงที่ใน/etc/network/interfacesไฟล์ ฉันได้รับข้อผิดพลาดเดียวกันแม้หลังจากคืนค่าการเปลี่ยนแปลงเหล่านั้นและเมื่อคอมพิวเตอร์ทำงานได้ดี ในขณะที่มองผ่าน/var/log/syslogฉันพบสิ่งนี้: kernel: [ 6448.036144] init: networking post-stop process (28701) terminated with status 100 เกี่ยวข้องกับการหยุด / เริ่มต้นที่ล้มเหลวหรือไม่ ฉันใช้ Ubuntu 14.04

4
วิธีป้องกัน atd ไม่ให้ทำงานในอดีต?
At daemon เป็นเครื่องมือที่ยอดเยี่ยม! อย่างไรก็ตามหากมีการกำหนดเวลางานไว้เป็นเวลา 8:00 น. และเครื่องจะปิดในเวลานั้นเวลาที่จะทำงานนั้นเมื่อใดก็ตามที่เครื่องถูกบู๊ต สิ่งที่ฉันต้องการจะทำคือหยุดทำงานไม่ได้หากเวลาผ่านไป ฉันค้นหาหน้าคนและออนไลน์ แต่อาจไม่มีคำตอบหรือไม่พบหน้าใดหน้าหนึ่ง ฉันใช้ Arch แต่เท่าที่ฉันรู้นั้นคล้ายกันมากกับการแจกแจง ความช่วยเหลือใด ๆ ที่ชื่นชมมาก!
9 time  scheduling  daemon  at 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.