ดังนั้นเราสามารถใช้สคริปต์ Startup Forever Plus เพื่อแก้ปัญหาข้างต้นได้หรือไม่? คำตอบคือแน่นอนใช่ แต่มันค่อนข้างลำบากและทางการไม่มีเอกสารการกำหนดค่าโดยละเอียดตลอดไป ฉันยังใช้เส้นทางอ้อมเมื่อกำหนดค่าดังนั้นฉันจะเข้าไปดูรายละเอียดด้านล่าง
หมายเหตุ: สภาพแวดล้อมการทดลองของบทความนี้คือ Ubuntu Server 12.04 LTS x86_64 และการกำหนดค่าของ CentOS นั้นง่ายกว่า
ตอนแรกฉันคิดเกี่ยวกับการเพิ่ม XXX to /etc/rc.local ตลอดไป แต่ฉันพบว่า Ubuntu (เช่นเดียวกับระบบอื่น ๆ ) ไม่เลวสำหรับฉัน ความขัดแย้งหลักคือ MongoDB สามารถทำงานได้โดยใช้วิธีนี้ แต่ตลอดไปไม่สามารถทำได้ ด้วยความสิ้นหวังฉันควรพิจารณาจากมุมมองของ /etc/init.d
หลักฐานคือการทำตลอดไปก่อน วิธีนี้ง่ายมาก เพียงดำเนินการคำสั่งต่อไปนี้:
NPM ติดตั้งตลอดไป -G
หลังจากการติดตั้งเสร็จสมบูรณ์ให้ใช้โปรแกรมโหนดอย่างง่ายเพื่อทดสอบ:
เริ่มทดสอบตลอดไป jsforever stop test.jsorever รีสตาร์ท test.js
ตราบใดที่ข้อผิดพลาดไม่ได้รับแจ้งก็หมายความว่าตลอดไปสามารถใช้งานได้นั่นคือเงื่อนไขพื้นฐานสำหรับการใช้งานตลอดไปเพื่อเปิดโครงการโหนดในพื้นหลังจะพบแล้วและส่วนที่เหลือคือการเขียนสคริปต์เริ่มต้น
เนื้อหาพื้นฐานของสคริปต์มีดังนี้ขอบคุณผู้เขียนต้นฉบับสำหรับการทำงานหนักของเขา:
#!/bin/bash ### เริ่มต้นข้อมูลเริ่มต้น# ให้: xiyoulib# จำเป็นต้องเริ่มต้น: $ ทั้งหมดที่ต้องการ-หยุด: $ ทั้งหมด# เริ่มต้น-เริ่มต้น: 2 3 4 5# ค่าเริ่มต้น-stop: 0 1 6# สั้นคำอธิบาย: เริ่ม daemon ที่เวลาบูต# คำอธิบาย: เปิดใช้งานบริการที่จัดหาโดย daemon node.jsdeamon =/node.js/xiyoulibnodeexpress/bin/www #her คุณต้องกรอกไฟล์สคริปต์เริ่มต้นของบันทึกโครงการโหนดของคุณเอง =/node.js/log/log #optional, log file directory pid =/node.js/pid # Node Executable Program Directory ที่นี่ของฉันคือ/usr/local/binexport node_path = $ node_path:/usr/local/lib/node_modules #มีเส้นทางของไลบรารีคลาสโหนด #เนื้อหาด้านล่างไม่จำเป็นต้องแก้ไข Node = NodeForever = ForeverCase "$ 1" หยุด) $ Forever Stop -PIDFILE $ PID $ deamon ;; หยุด) $ ตลอดไปหยุด -pidfile $ pid ;; RESTARTALL) $ Forever RESTARTALL -PIDFILE $ PID ;; โหลดซ้ำ | รีสตาร์ท) $ ตลอดไปรีสตาร์ท -l $ log -pidfile $ pid -a $ deamon ;; รายการ) $ ตลอดไปรายการ ;; *) echo "การใช้งาน: /etc.init.d/node {เริ่ม | หยุด | รีสตาร์ท | โหลดซ้ำ | stopall | restartall | list}" ออก 1 ;; esacนี่คือการเตือนความจำ: เป็นการดีที่สุดที่จะสร้างไดเรกทอรีในไดเรกทอรีรากสำหรับโครงการโหนดเช่น /node.js จากนั้นตั้งค่าการอนุญาตเป็น 754 ซึ่งสามารถหลีกเลี่ยงปัญหาที่เกิดจากปัญหาการอนุญาต!
เนื่องจากฉันใช้ระบบเซิร์ฟเวอร์ Ubuntu บริการเริ่มต้น MongoDB จึงถูกกำหนดค่าและคำสั่งต่อไปนี้จะถูกเพิ่มลงในสคริปต์ init.d:
# จำเป็นต้องเริ่มต้น: $ ทั้งหมด# จำเป็น-เปิด: $ ทั้งหมด
ดังนั้นเมื่อฉันเพิ่มมันเองในอนาคตระบบจะแจ้งข้อผิดพลาด ดังนั้นในสคริปต์เริ่มต้นของโครงการโหนดฉันเพิ่มสตริงก่อนหน้าของความคิดเห็นคำอธิบายสำหรับระบบเซิร์ฟเวอร์ Ubuntu เพื่อตั้งค่า หากอยู่ใน Centos ปัญหาที่คล้ายกันไม่ควรเกิดขึ้น ให้ความสนใจเป็นพิเศษกับสิ่งนี้!
นั่นคือข้อมูลคำอธิบายต่อไปนี้:
### เริ่มต้นข้อมูลเริ่มต้น# ให้: xiyoulib# จำเป็นต้องเริ่มต้น: $ ทั้งหมด# จำเป็นต้องใช้: $ ทั้งหมด# เริ่มต้น-เริ่มต้น: 2 3 4 5# ค่าเริ่มต้น-เปิด: 0 1 6# คำอธิบายสั้น
หลังจากที่สคริปต์ได้รับการแก้ไขแล้วให้ใช้คำสั่ง chkconfig-รายการเพื่อตรวจสอบว่าบริการที่คุณเพิ่มนั้นมีประสิทธิภาพนั่นคือทั้ง 3 และ 5 จะต้องเปิดให้เริ่มต้นด้วยตนเองหรือไม่
หากไม่ได้ตั้งค่า 3 และ 5 โปรดดำเนินการ chkconfig -ระดับ 35 [ชื่อบริการของคุณ] บน เซิร์ฟเวอร์ Ubuntu อาจรายงานคำเตือนบางอย่าง แต่ตราบใดที่บริการ 3 และ 5 ของบริการที่ต้องการสามารถเปลี่ยนไปได้ข้อผิดพลาดอื่น ๆ สามารถเพิกเฉยได้ (ฉันรู้สึกว่านี่เป็นธุรกิจของระบบ)
หลังจากการตั้งค่าเสร็จสิ้นโครงการโหนดสามารถเริ่มต้นได้ที่ Linux คุณสามารถปิดตัวลง -r ตอนนี้พยายามดูว่าสามารถเริ่มต้นได้หรือไม่ หลังจากเริ่มต้นคุณสามารถเข้าถึงหมายเลขพอร์ตและไดเรกทอรีเสมือนจริงที่คุณตั้งค่าโดยตรง ถ้าคุณต้องการงานจะเสร็จสิ้น!
แต่ถ้ามันผิดให้ตรวจสอบสคริปต์อย่างระมัดระวังและทำการแก้ไขที่เกี่ยวข้องตามข้อผิดพลาด หลังจากทั้งหมดฉันก็ลองด้วย!