시작 nodejs 스크립트 Ubuntu를 만들어보십시오.

시작 nodejs 스크립트 Ubuntu를 만들어보십시오.

이것은 Ubuntu용 시작 스크립트를 작성하려는 첫 번째 시도입니다. 내 API용 Express 서버를 시작해야 합니다.Ubuntu Server에서 Node.js 서비스를 항상 활성 상태로 유지.

그래서 내 server.js는 다음과 같습니다(나도 하나 만들었습니다 chmod +x).

import express from 'express'
import morgan from 'morgan'
import bodyParser from 'body-parser'
import mongoose from 'mongoose'
import router from './router'

// chargement du fichier .env qui contient les différentes configuration du projet
require('dotenv').config({path: __dirname + '/.env'})

// Connexion à MongoDB
mongoose.connect('mongodb://localhost/Lyveat_Rider')

// Initialisation du serveur http
const app = express()

// Logger qui affiche toutes les requêtes dans la console
app.use(morgan('combined'))
// Parseur du body pour les requêtes
app.use(bodyParser.urlencoded({ extended: false }));

// Utilise v1 comme prefix pour l'API
app.use('/v1', router)

// Launch the server on port 3000
const server = app.listen(process.env.PORT, () => {
  const { address, port } = server.address();
  console.log(`Listening at http://${address}:${process.env.PORT}`)
});

server_node.service다음 내용으로 /etc/systemd/system/ 내에 이름이 지정된 서비스를 만들었습니다 .

[Unit]
Description=Node.js Lyveat_Rider  Http Server

[Service]
PIDFile=/tmp/lyveat_rider-99.pid
Restart=always
KillSignal=SIGQUIT
WorkingDirectory=/home/dev/lyveat/api
ExecStart=/home/dev/lyveat/api/server.js

[Install]
WantedBy=multi-user.target

여러 가지 방법을 시도했지만 먼저 헤더(#!usr/bin/env 노드) 없이 다음 오류가 발생했습니다.

EXEC 단계에서 /home/dev/lyveat/api/server.js를 생성하지 못했습니다: Exec 형식 오류

제목을 입력한 후 오류가 발생합니다.

/usr/bin/env: 'node /** server.js */\r': 해당 파일이나 디렉터리가 없습니다.

또한 node 대신 nodejs를 사용해 보았고 다른 주제에 있는 이 명령을 시도해 보았습니다.

ln -s /usr/bin/nodejs /usr/bin/node

그래서 나는 그것을 작동시키는 방법을 정말로 모릅니다.

답변1

나는 이것이 당신이 서비스를 만든 방법에 대한 해결책이 아니라는 것을 알고 있지만 이것이 내 서버에 대해 한 일입니다.

PM2를 사용해 보세요. 여러 nodejs 서버와 애플리케이션을 쉽게 실행하고 관리할 수 있습니다. 설정이 쉽고, 부팅 시 서버를 시작할 수 있으며, 어떤 이유로든 서버가 중지되면 서버를 모니터링하고 시작할 수도 있습니다. 이것빠른 시작필요한 것이 무엇인지 알려주십시오.

관련 정보