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

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

1
“ systemctl daemon-reload” ทำอะไร
ฉันมีบริการที่หยุดกะทันหัน ฉันพยายามเริ่มบริการนั้นใหม่ แต่ล้มเหลวและขอให้เรียกใช้ "systemctl daemon-reload" มันทำอะไรกันแน่? "daemon reload คืออะไร"
46 centos  systemd  daemon 

4
อะไรคือความแตกต่างระหว่างการเรียกใช้โปรแกรมเป็น daemon และฟอร์กมันลงในพื้นหลังด้วย '&'
อะไรคือความแตกต่างในทางปฏิบัติจากมุมมองดูแลระบบเมื่อปรับใช้บริการบนระบบที่ใช้ระบบปฏิบัติการยูนิกซ์?

15
วิธีการใช้งาน Dropbox daemon ในพื้นหลัง
ฉันใช้ Debian 6 และ Dropbox ฉันทำตามคำสั่งเหล่านี้เพื่อติดตั้ง เมื่อฉันทำงาน~/.dropbox-dist/dropboxd- Dropbox ใช้งานได้หลายอย่าง ปัญหาคือเมื่อฉันปิดเทอร์มินัลหรือยิ่งแย่ลง - รีบูต Dropbox หยุดทำงานและฉันต้องเรียกใช้ภูตนั้นอีกครั้ง ฉันจะให้คอมพิวเตอร์เริ่ม daemon นั้นโดยอัตโนมัติในพื้นหลังได้อย่างไร
38 daemon  dropbox 

2
วิธีแสดง daemons ที่ใช้งานอยู่ทั้งหมด
จากคำถามของฉันเป็นที่ชัดเจนว่าฉันไม่สามารถตัดสินใจคุณสมบัติของ daemon ได้อย่างง่ายดายฉันได้อ่านบทความต่าง ๆ และจากฟอรัมต่าง ๆ ที่service --status-allสามารถใช้คำสั่งเพื่อแสดงรายการ daemons ทั้งหมดในระบบของฉัน แต่ฉันไม่คิดว่าคำสั่งนั้นแสดงรายการ daemons ทั้งหมดเพราะNetworkManagerdaemon ที่กำลังทำงานอยู่ในUbuntu 14.04ระบบของฉันไม่ได้อยู่ในรายการคำสั่ง มีคำสั่งให้แสดงรายการ daemons ที่กำลังทำงานอยู่หรืออย่างอื่นมีวิธีหา daemons จากfilesystemตัวเองบ้างไหม?
32 services  daemon 

4
วิธีตรวจสอบว่า daemon กำลังฟังบนอินเตอร์เฟสใด
เช่น: sshd ถูกกำหนดค่าให้ฟังใน wlan0 เท่านั้น ดังนั้น. นอกจากการตรวจสอบ sshd_config ฉันจะตรวจสอบได้อย่างไรว่า daemon กำลังรับฟัง inerface ใด netstat สามารถทำได้หรือไม่ อย่างไร (OS: openwrt หรือวิทยาศาสตร์ linux หรือ openbsd) UPDATE: ฉันคิดว่า sshd อาจถูก จำกัด ให้ใช้อินเทอร์เฟซ ... แต่ไม่ ... (192.168.1.5 อยู่บน wlan0 ... ) # grep ^ListenAddress /etc/ssh/sshd_config ListenAddress 192.168.1.5:22 # # lsof -i -n -P COMMAND PID …
28 daemon  netstat 

7
Ubuntu12.04: วิธีการปิดการใช้งานกระบวนการ daemon เมื่อเริ่มต้น
ผมปกติใช้service start/stopหรือinitctl start/stopการเริ่มต้นหรือหยุดกระบวนการภูต mysqldแต่ตอนนี้สิ่งที่ฉันกำลังมองหาคือการปิดกระบวนการภูตจากเริ่มต้นที่ตัวอย่างเช่นการเริ่มต้น ขณะนี้สิ่งที่ฉันกำลังทำคือการเปลี่ยนชื่อ/etc/init/mysql.confเป็น/etc/init/mysql.conf.bakแต่หลังจากอ่านเพียงเล็กน้อยเกี่ยวกับsystemdฉันก็รู้ว่ามันมีenable & disableตัวเลือกสำหรับงานดังกล่าวข้างต้น ดังนั้นจะมีบางสิ่งบางอย่างที่คล้ายกันในอูบุนตู 12.04 upstartกับ
23 ubuntu  daemon  upstart 

3
วิธี“ เหมาะสม” ในการรันเชลล์สคริปต์เป็น daemon
ฉันจะเขียนสคริปต์เชลล์ที่ผมอยากจะทำงานเป็นภูตในการเริ่มต้นโดยไม่ต้องใช้เครื่องมือภายนอกเช่นdaemontoolsหรือ daemonize Linux Daemon การเขียน HOWTO ตามที่ลินุกซ์ภูตเขียน HOWTOที่เหมาะสมภูตมีลักษณะดังต่อไปนี้: ส้อมจากกระบวนการหลัก ปิดทั้งหมดอธิบายไฟล์ (เช่นstdin, stdout, stderr) เปิดบันทึกสำหรับการเขียน (ถ้ากำหนดค่า) เปลี่ยนไดเรกทอรีการทำงานอย่างใดอย่างหนึ่งที่เป็นถาวร (ปกติ/) รีเซ็ตหน้ากากโหมดไฟล์ (umask) สร้างSession ID ที่ไม่ซ้ำกัน(SID) daemonizeบทนำ daemonizeบทนำไปไกลระบุว่าภูตทั่วไปเพิ่มเติม: ยกเลิกการเชื่อมโยงจากเทอร์มินัลการควบคุม (หากมี) และจะละเว้นสัญญาณเทอร์มินัลทั้งหมด ยกเลิกการเชื่อมโยงจากกลุ่มกระบวนการ จับ SIGCLD ฉันจะทำทั้งหมดนี้ในsh, dashหรือbashสคริปต์ด้วยเครื่องมือลินุกซ์ร่วมกันเท่านั้น? สคริปต์ควรสามารถทำงานบน distros ได้มากที่สุดโดยไม่ต้องมีซอฟต์แวร์เพิ่มเติมแม้ว่าDebianจะเป็นจุดสนใจหลักของเรา หมายเหตุ:ฉันรู้ว่ามีคำตอบมากมายในเครือข่ายStackExchange ที่แนะนำให้ใช้nohupหรือsetsidแต่วิธีการเหล่านี้ไม่ได้จัดการข้อกำหนดทั้งหมดข้างต้น แก้ไข: ภูต (7) manpageยังช่วยให้คำแนะนำบางส่วนแม้ดูเหมือนจะมีความแตกต่างบางอย่างระหว่างแบบเก่าSysVภูตและใหม่กว่าsystemdคน เนื่องจากความเข้ากันได้กับความหลากหลายของ distros เป็นสิ่งสำคัญโปรดตรวจสอบให้แน่ใจว่าคำตอบนั้นชัดเจนแตกต่างกัน

1
start-stop-daemon แตกต่างจากการใช้ & & คืออะไร?
ฉันกำลังตั้งค่าบริการใน /etc/init.d ฉันกำลังมองหาที่สคริปต์ต่างๆในนั้นบางส่วนจะดำเนินการด้วยและบางคนที่มีstart-stop-daemon .../path/to/script & ทั้งหมดของพวกเขาบันทึก pid ในไฟล์และทำการตรวจสอบบางอย่าง แนวปฏิบัติที่ดีที่สุดคืออะไรความแตกต่างอะไรคือสิ่งสำคัญที่ต้องรู้ที่นี่ ... ? (โดยทั่วไป) ในกรณีของฉันโดยเฉพาะฉันมีเซิร์ฟเวอร์ http localhost แบบเบา ๆ ใน java ที่แอปพลิเคชันจะโทรหนึ่งครั้งทุกชั่วโมงหรือมากกว่านั้นและมันก็ให้หมายเลขสุ่มโง่ ๆ (ไม่มีรายละเอียดเพิ่มเติมที่นี่ฉันแค่หมายความว่าไม่ได้ใช้ระบบไฟล์หรือ หัวข้อหรือสิ่งที่ซับซ้อนในกรณีนี้ในคำถามของฉัน) ขอบคุณ

1
เหตุใดเราใช้ setsid () ในขณะที่ daemonizing กระบวนการ
เพื่อสร้างการบริการ (ภูต) setsid()เราแยกแม่และทำให้มันออกในขณะที่ทำให้เด็กที่จะเป็นผู้นำเซสชั่นโดยการเรียก นอกจากนี้ทำไมเราจึงใช้ setsid () กระบวนการเด็กกำพร้าของเราได้รับการดูแลโดยกระบวนการinit(แม้ว่าจะไม่ใช่ทุกกรณี) ทำไมเราถึงใช้ stsid () มีความสัมพันธ์ใด ๆ ระหว่างsetsid()และการจัดการSIGHUPสัญญาณ
18 daemon 

1
start-stop-daemon ไม่ทำงานตามที่คาดไว้ไม่มีการเขียนไฟล์ pid
ฉันพยายามควบคุมโปรแกรมที่ใช้ python (ซึ่งไม่แยกตัวเองออกจากคอนโซล) #!/bin/bash user=nobody pid=/var/run/xx.pid name=xx prog=/xx.py case $1 in start) /sbin/start-stop-daemon --start -b --oknodo --user "$user" --name "$name" --pidfile "$pid" --startas "$prog" --chuid nobody -- --daemon ;; stop) /sbin/start-stop-daemon --stop --oknodo --user "$user" --name "$name" --pidfile "$pid" --retry=TERM/5/KILL/1 ;; restart) ;; *) ;; esac ส่วนเริ่มต้นทำงานได้ดี ฉันเห็นสคริปต์ทำงานและทำงานได้ แต่ส่วนหยุดไม่ทำงาน มันก็พูดว่าNo …

3
rpc.statd ทำงานบนระบบที่ไม่ได้ใช้ NFS
ฉันมีเครื่อง Debian ที่ได้รับคำเตือน (ผ่านทางผู้ตรวจสอบอัตโนมัติ Tiger) ที่rcp.statdกำลังฟังบนซ็อกเก็ตที่ดังกล่าว Googling shows rpc.statdเป็น daemon ที่ใช้โดย NFS เท่าที่ฉันรู้ฉันไม่ได้ใช้ (และไม่ได้ติดตั้ง) สิ่งที่เกี่ยวข้องกับ NFS สิ่งที่จะมีการติดตั้ง / เริ่มบริการนี้และสิ่งที่ฉันต้องทำเพื่อปิดการใช้งานที่เหมาะสมrcp.statdและ NFS daemons?

2
log_daemon_msg คืออะไร
ฉันมองผ่าน/etc/init.d/sshเพื่อรับทราบว่า sys daemon "เหมาะสม" ทำงานอย่างไรในการบูต (ฉันพยายามเพิ่มsvnserveในรายการนั้น) ฉันเห็นสิ่งนี้log_daemon_msgใช้เป็นคำสั่ง แต่ฉันไม่รู้ว่ามันคืออะไร which log_daemon_msgและman log_daemon_msgขึ้นมาว่างเปล่า ตัวอย่าง: log_daemon_msg "Starting OpenBSD Secure Shell server" "sshd" || true if start-stop-daemon --start --quiet --oknodo --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- $SSHD_OPTS; then log_end_msg 0 || true else log_end_msg 1 || true fi มันทำงานอย่างไร ฉันลอง Googling ไปรอบ ๆ แต่สิ่งเดียวที่ฉันสามารถหาได้คือคำถามเกี่ยวกับที่มันบันทึกข้อความของมันซึ่งไม่มีประโยชน์อะไรเพราะฉันแทบจะไม่รู้วิธีใช้หรืออะไรคือคำสั่งบิวอินหรืออย่างอื่น
15 logs  daemon 

1
Systemctl ลบยูนิตออกจากรายการที่ล้มเหลว
ฉันจะลบหน่วยออกจากsystemctl --failedรายการโดยไม่ต้องรีบูตเครื่องได้อย่างไร ความเป็นมา: ฉันมีรายการต่อไปนี้ในรายการ: ● openvpn-server@intranert.service loaded failed failed OpenVPN service for intranert สิ่งนี้เกิดขึ้นเพราะฉันสะกดคำผิดintranetซึ่งเป็นอินสแตนซ์ที่ใช้งานได้จริงในการเปิดใช้งานเทมเพลตหน่วยเมื่อไม่นานมานี้ อย่างไรก็ตามตอนนี้ฉันมักจะสับสนเมื่อมองอย่างรวดเร็วเมื่อฉันตรวจสอบหน่วยที่ล้มเหลวของเซิร์ฟเวอร์เนื่องจากดูเหมือนว่าบริการที่ได้ผลจริง ๆ จะล้มเหลวจนกว่าฉันจะรับรู้ถึงข้อผิดพลาดในการสะกดคำและจดจำการพิมพ์ผิดของฉัน

3
เหตุใดฉันจึงต้อง chroot สำหรับ sandboxing เพื่อความปลอดภัยถ้าแอปพลิเคชันของฉันสามารถเรียกใช้ตั้งแต่เริ่มต้นที่ระดับต่ำกว่าได้
ฉันกำลังเขียน daemon เซิร์ฟเวอร์ HTTP ใน C (มีเหตุผลว่าด้วยอะไร) จัดการมันด้วยไฟล์ systemd unit ฉันเขียนใหม่แอปพลิเคชันที่ออกแบบมาเมื่อ 20 ปีก่อนประมาณปี 1995 และระบบที่พวกเขาใช้คือพวกเขา chroot แล้ว setuid และขั้นตอนมาตรฐาน ตอนนี้ในงานก่อนหน้าของฉันนโยบายปกติคือคุณไม่เคยเรียกใช้กระบวนการใด ๆ ในฐานะที่เป็นรูท คุณสร้างผู้ใช้ / กลุ่มสำหรับมันและเรียกใช้จากที่นั่น แน่นอนว่าระบบใช้บางสิ่งเป็นรูท แต่เราสามารถบรรลุการประมวลผลเชิงตรรกะทางธุรกิจทั้งหมดโดยไม่ต้องรูท ตอนนี้สำหรับดีมอน HTTP, ฉันสามารถเรียกใช้โดยไม่รูทถ้าฉันไม่ chroot ภายในแอปพลิเคชัน. ดังนั้นแอปพลิเคชันจะปลอดภัยกว่าหรือไม่ที่จะไม่รันในฐานะรูท? ปลอดภัยหรือไม่ที่จะเรียกใช้ในฐานะผู้ใช้ mydaemon ตั้งแต่ต้น? แทนที่จะเริ่มด้วย root, chrooting, จากนั้น setuid เป็น mydaemon-user
14 chroot  daemon 

3
เป็นการดีที่จะเรียกใช้ daemon ภายใต้บัญชีผู้ใช้ที่ไม่ใช่รูทหรือไม่?
ฉันได้พัฒนาแอปพลิเคชันที่ใช้ NTP เพื่อเปลี่ยนเวลาเครือข่ายเพื่อซิงค์คอมพิวเตอร์สองเครื่องของฉัน มันทำงานเป็นrootเพราะหลังเท่านั้นที่ได้รับอนุญาตให้เปลี่ยนเวลาและวันที่บน Linux (ฉันเดา) ตอนนี้ฉันต้องการเรียกใช้ในฐานะผู้ใช้ แต่ฉันต้องเข้าถึงเวลา เป็นการดีที่จะเรียกใช้ daemon ภายใต้บัญชีผู้ใช้ที่ไม่ใช่รูทหรือไม่? ฉันจะให้ความสามารถกับแอปพลิเคชันของฉันเช่นCAP_SYS_TIME? มันไม่ได้แนะนำจุดอ่อนด้านความปลอดภัยหรือไม่? มีวิธีที่ดีกว่า?

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