คำถามติดแท็ก init.d

19
วิธีรันเชลล์สคริปต์เมื่อเริ่มต้น
ในอินสแตนซ์Amazon S3 Linux ฉันมีสคริปต์สองตัวที่เรียกใช้start_my_appและตัวstop_my_appใดที่เริ่มและหยุดอย่างถาวร (ซึ่งจะเรียกใช้แอปพลิเคชัน Node.js ของฉัน) ฉันใช้สคริปต์เหล่านี้เพื่อเริ่มและหยุดแอปพลิเคชัน Node.js ของฉันด้วยตนเอง จนถึงตอนนี้ดีมาก ปัญหาของฉัน: ฉันต้องการตั้งค่าให้start_my_appทำงานเมื่อใดก็ตามที่ระบบบู๊ต ฉันรู้ว่าฉันต้องเพิ่มไฟล์ข้างในinit.dและฉันรู้วิธีเชื่อมโยงไปยังไดเรกทอรีที่เหมาะสมภายในrc.dแต่ฉันไม่สามารถเข้าใจได้ว่าจริงๆแล้วสิ่งที่ต้องเข้าไปในไฟล์ที่ฉันวางinit.dไว้ ฉันคิดว่ามันควรจะเป็นแค่หนึ่งบรรทัดเช่นstart_my_appนั้น แต่นั่นไม่ได้ผลสำหรับฉัน
366 linux  node.js  init.d  forever 

19
แอปพลิเคชัน Spring Boot เป็นบริการ
วิธีการกำหนดค่าแอพพลิเคชั่น Spring Boot ที่บรรจุในรูปแบบ jar แบบปฏิบัติการได้เป็น Service ในระบบ linux นี่เป็นแนวทางที่แนะนำหรือฉันควรแปลงแอพนี้เป็นสงครามและติดตั้งลงใน Tomcat หรือไม่? ขณะนี้ฉันสามารถเรียกใช้แอพพลิเคscreenชั่นSpring boot จากเซสชันสิ่งที่ดี แต่ต้องเริ่มด้วยตนเองหลังจากรีบูตเซิร์ฟเวอร์ สิ่งที่ฉันกำลังมองหาคือคำแนะนำ / ทิศทางทั่วไปหรือinit.dสคริปต์ตัวอย่างถ้าแนวทางของฉันกับjar ที่ใช้งานได้นั้นเหมาะสม

8
แนวปฏิบัติที่เหมาะสมที่สุดในการเรียกใช้บริการ Linux ในฐานะผู้ใช้อื่น
บริการเริ่มต้นที่จะเริ่มต้นrootณ เวลาบูตในกล่อง RHEL ของฉัน ถ้าผมจำได้อย่างถูกต้องเดียวกันเป็นจริงสำหรับลินุกซ์ distros อื่น ๆ ที่ใช้สคริปต์ init /etc/init.dใน คุณคิดว่าอะไรคือวิธีที่ดีที่สุดที่จะให้กระบวนการทำงานแทนในฐานะผู้ใช้ (แบบคงที่) ที่ฉันเลือก วิธีเดียวที่ฉันไปถึงคือใช้สิ่งที่ชอบ: su my_user -c 'daemon my_cmd &>/dev/null &' แต่ดูเหมือนจะไม่เป็นระเบียบ ... มีเวทย์มนตร์บ้างไหมที่ให้กลไกง่าย ๆ ในการเริ่มให้บริการโดยอัตโนมัติเหมือนกับผู้ใช้ที่ไม่ใช่ผู้ใช้รูทอื่น ๆ ? แก้ไข:ฉันควรได้กล่าวว่ากระบวนการที่ฉันเริ่มต้นในกรณีนี้เป็นสคริปต์ Python หรือโปรแกรม Java ฉันไม่ควรเขียน wrapper พื้นเมืองรอบตัวพวกเขาดังนั้นฉันจึงไม่สามารถเรียกsetuid ()ตามที่Blackแนะนำ
141 linux  sysadmin  rhel  init.d 

10
ฉันจะล็อก stdout ของกระบวนการที่เริ่มต้นโดย start-stop-daemon ได้อย่างไร
ฉันใช้สคริปต์ init เพื่อเรียกใช้กระบวนการง่ายๆซึ่งเริ่มต้นด้วย: start-stop-daemon --start --quiet --chuid $DAEMONUSER \ --make-pidfile --pidfile $PIDFILE --background \ --exec $DAEMON $DAEMON_ARGS กระบวนการที่เรียกว่า $ DAEMON มักจะพิมพ์ข้อมูลบันทึกไปยังเอาต์พุตมาตรฐาน เท่าที่ฉันสามารถบอกได้ว่าข้อมูลนี้ไม่ได้ถูกเก็บไว้ที่ใดก็ได้ ฉันต้องการเขียนหรือต่อท้าย stdout ของ $ DAEMON ในไฟล์ที่ไหนสักแห่ง ทางออกเดียวที่ฉันรู้คือบอก start-stop-daemon ให้เรียกใช้ shellscript แทน $ DAEMON โดยตรง จากนั้นสคริปต์จะเรียก $ DAEMON และเขียนลงในไฟล์บันทึก แต่นั่นต้องใช้สคริปต์พิเศษซึ่งเช่นเดียวกับการปรับเปลี่ยน daemon เองดูเหมือนจะเป็นวิธีที่ผิดในการแก้ปัญหาทั่วไปดังกล่าว
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.