これは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サーバーとアプリケーションを簡単に実行および管理できます。セットアップが簡単で、起動時にサーバーを起動できます。何らかの理由でサーバーが停止した場合は、サーバーを監視して起動することもできます。これクイックスタート必要なものを教えてください。