尝试创建启动nodejs脚本Ubuntu

尝试创建启动nodejs脚本Ubuntu

这是我第一次尝试为 Ubuntu 创建启动脚本。我需要为我的 API 启动一个 Express 服务器,我已经遵循了让 Node.js 服务在 Ubuntu Server 上始终保持活动状态

所以我的 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': 没有这样的文件或目录

我还尝试使用nodejs而不是node,并且尝试了在另一个主题上找到的这个命令:

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

所以我真的不知道如何让它发挥作用。

答案1

我知道这不是您为其创建服务的方法的解决方案,但这就是我为我的服务器所做的。

试试 PM2.它可以轻松运行多个nodejs服务器和应用程序并管理它们。它易于设置,可以在启动时启动服务器,还可以监视并启动服务器(如果服务器因任何原因停止)。这快速开始告诉你你需要什么。

相关内容