小编Mar*_*mou的帖子

当指向 shell 脚本时,node.js 应用程序的 systemd 服务文件不起作用

在我提到我的问题之前,我已经检查了大部分与systemd相关的问题,但我找不到令人信服的答案。我编写了一个运行服务器的 nodejs 应用程序。

const express = require('express');
const app     = express(),
      port    = process.env.PORT || 5000;

    app.get('/' , ( req , res ) => {
        res.send('Hello World')
    })

    app.listen( port , () => {
        console.log(`The server listens on port ${port}`)
    })
Run Code Online (Sandbox Code Playgroud)

最初,我创建了一个运行 server.js 的服务,它的工作非常出色。

[Unit]
Description=Hello World
After=network.target

[Service]
ExecStart=/usr/bin/node /home/msimou/Desktop/helloWorld/server.js
User=msimou
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

但是,我通过创建启动或停止服务的 .sh 文件尝试了相同的任务,并尝试嵌入到单元文件中,但由于某种未知原因,服务器无法正常工作。更新后的单元文件如下所示:

[Unit]
Description=Hello World
After=network.target

[Service]
ExecStart=/bin/bash /home/msimou/Desktop/helloWorld/init/startHelloWorld.sh
ExecStop=/bin/bash /home/msimou/Desktop/helloWorld/init/stopHelloWorld.sh
User=msimou
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

我检查了日志文件/var/log/syslogjournalctl发现了错误,但我唯一能看到的是 systemd 连续启动和停止我的服务 …

systemd services node.js

4
推荐指数
1
解决办法
1770
查看次数

标签 统计

node.js ×1

services ×1

systemd ×1