郭震 AI公众号:郭震AI

Linux服务进程崩溃后自动启动

发布日期:

分类: AI消息

预计阅读: 2 分钟

阅读次数: 0

预计阅读2 分钟
结构重点3 个
图文要点0 张
正文规模887 字

这个 systemd 服务单元文件用于在 Linux 服务器上管理一个 Node.js 应用程序的后台运行。以下是它的主要功能和作用:

功能解析

  1. 定义服务基本信息

    [Unit]
    Description=My Node.js Application
    After=network.target
    
    • Description:描述这个服务的作用(Node.js 应用)。
    • After=network.target:确保网络服务启动后再启动这个服务。
  2. 设置工作环境

    [Service]
    WorkingDirectory=/root/my-markdown-site
    Environment=PORT=3001
    Environment="PATH=/root/node-v18.18.1-linux-x64-glibc-217/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    
    • WorkingDirectory=/root/my-markdown-site:设置工作目录,服务会在此目录下执行命令。
    • Environment=PORT=3001:定义环境变量,指定应用运行端口。
    • Environment="PATH=...":确保 npmnode 可用,因为它们安装在 /root/node-v18.18.1-linux-x64-glibc-217/bin 目录下,而不是全局可用的路径中。
  3. 启动 Node.js 应用

    ExecStart=/root/node-v18.18.1-linux-x64-glibc-217/bin/npm run start
    
    • ExecStart 运行 npm run start 命令,以启动 Node.js 应用。
    • 使用绝对路径 /root/node-v18.18.1-linux-x64-glibc-217/bin/npm 确保 npm 可被找到。
  4. 自动重启

    Restart=always
    RestartSec=5
    
    • Restart=always:如果进程崩溃,会自动重启。
    • RestartSec=5:如果进程崩溃,等待 5 秒 后再尝试重启。
  5. 设置开机自启

    [Install]
    WantedBy=multi-user.target
    
    • WantedBy=multi-user.target:确保该服务在多用户模式(即正常系统启动)时自动启动。

如何使用

  1. 保存文件

    • 把这个内容保存为 /etc/systemd/system/my-node-app.service
  2. 加载 systemd 配置

    sudo systemctl daemon-reload
    
  3. 启动服务

    sudo systemctl start my-node-app
    
  4. 检查服务状态

    sudo systemctl status my-node-app
    
  5. 设置开机自启

    sudo systemctl enable my-node-app
    
  6. 停止/重启服务

    sudo systemctl stop my-node-app
    sudo systemctl restart my-node-app
    

总结

  • 这个 systemd 配置文件会在 服务器开机时自动启动 Node.js 应用,并确保应用 崩溃后自动重启
  • 适用于 生产环境部署,减少应用因意外错误中断的可能性。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关内容

更多相关文章

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...