การเรียกใช้งานสคริปต์เริ่มต้นแตกต่างจากการเขียนคำสั่งด้วยตนเองอย่างไร


0

นี่คือสคริปต์เริ่มต้นเว็บเซิร์ฟเวอร์ Node.JS ของฉันสำหรับ RedHat EL 6

#!/bin/sh
# chkconfig:   345 01 01
# description: DeepFlow startup script

case $1 in
        start)
            echo "Starting DeepFlow"
            cd /home/admin/Desktop/DeepFlow/server
            ./bin/node js/server.js
            ;;
        stop)
            echo "Stopping DeepFlow"
            killall node
            ;;
esac

ด้วยเหตุผลบางอย่างเมื่อฉันพิมพ์ด้วยตนเอง

            cd /home/admin/Desktop/DeepFlow/server
            ./bin/node js/server.js

ทุกอย่างทำงานได้ดี แต่เมื่อservice DeepFlow startฉันได้รับข้อผิดพลาด Node.JS:

Starting DeepFlow

events.js:71
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: failed to connect to [localhost:27017]

อะไรคือความแตกต่างระหว่างการพิมพ์บรรทัดสคริปต์ในเทอร์มินัลด้วยตนเองและการรันสคริปต์ด้วยservice?

คำตอบ:


-1

ลองใช้ชื่อพา ธ แบบเต็ม

NODE_BIN="/home/admin/Desktop/DeepFlow/server/bin/node"
SERVER_JS="/home/admin/Desktop/DeepFlow/server/js/server.js"
echo "Starting DeepFlow"
$NODE_BIN $SERVER_JS
;;

นอกจากนี้ยังเป็นการดีที่จะตรวจสอบว่าผู้ใช้รายใดเริ่มเซิร์ฟเวอร์ ถ้ามันทำงานเมื่อเริ่มต้นเจ้าของจะเป็น 'รูต'


ไม่ไม่ทำงาน
Randomblue

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