当前位置: 首页 > article >正文

【环境配置】ubuntu下的保持程序一直运行

useApplication 重启程序(保持一直运行状态)

目标

确保 useApplication 在意外停止后能够自动重启,提高服务的可用性和稳定性。

环境

  • 操作系统:Ubuntu 22.04 (jetson)
  • 应用程序:useApplication
  • 安装路径:/home/nvidia/install/APP

步骤

1. 创建 systemd 服务文件

  1. 打开终端

  2. 创建服务文件

    sudo gedit /etc/systemd/system/useapp.service
    
  3. 编辑服务文件,输入以下内容:

    [Unit]
    Description=UserAPP Service
    After=network.target
    
    [Service]
    User=nvidia
    WorkingDirectory=/home/nvidia/install/APP
    Environment=LD_LIBRARY_PATH=/home/nvidia/install/APP:$LD_LIBRARY_PATH
    ExecStart=/home/nvidia/install/APP/useApplication
    Restart=always # 设置服务在任何情况下都重新启动
    RestartSec=5s
    
    [Install]
    WantedBy=multi-user.target
    

    解释

    • [Unit]:服务的基本信息。
      • Description:服务的描述。
      • After:确保服务在网络服务启动之后再启动。
    • [Service]:服务的具体配置。
      • User:运行服务的用户。
      • WorkingDirectory:服务的工作目录。
      • Environment:设置环境变量 LD_LIBRARY_PATH
      • ExecStart:启动服务的命令。
      • Restart:设置服务在任何情况下都重新启动。
      • RestartSec:服务重启前的等待时间(秒)。
    • [Install]:安装配置。
      • WantedBy:服务在多用户模式下启动。
  4. 保存并关闭编辑器(按 Ctrl+X,然后按 Y,最后按 Enter)。

2. 重新加载 systemd 配置

  1. 重新加载 systemd 配置
    sudo systemctl daemon-reload
    

3. 启用并启动服务

  1. 启用服务(确保服务在系统启动时自动启动):

    sudo systemctl enable useapp.service
    
  2. 启动服务

    sudo systemctl start useapp.service
    

4. 检查服务状态

  1. 检查服务状态

    sudo systemctl status useapp.service
    

    预期输出

    • 服务应显示为 active (running)
    • 如果服务未启动,查看错误信息并进行相应调整。

5. 查看日志

  1. 查看 systemd 日志,以了解服务启动和重启的详细信息:

    sudo journalctl -u useapp.service --since "10 minutes ago"
    

    解释

    • --since "10 minutes ago":只显示最近10分钟的日志。
    • 查看日志中的错误信息,以确定服务启动失败的原因。

6. 手动测试

  1. 手动终止 useApplication 进程

    sudo kill $(pgrep useApplication)
    
  2. 等待几秒钟,然后检查进程是否重新启动:

    ps -aux | grep useApplication
    

    预期输出

    • 应能看到 useApplication 进程重新启动。

http://www.kler.cn/a/406899.html

相关文章:

  • 安宝特分享 | 如何利用AR技术革新医疗实践:从远程急救到多学科协作
  • 自然色调人像自拍照后期Lr调色教程,手机滤镜PS+Lightroom预设下载!
  • 如何将Latex的文章内容快速用word+Endnote排版
  • unity li2cpp逆向原理是什么?
  • 【Unity3D插件】Unity3D HDRP Outline高亮发光轮廓描边插件教程
  • Java根据前端返回的字段名进行查询数据的方法
  • 【工具变量】上市公司企业信贷可得性数据(2000-2022年)
  • Unity图形学之CubeMap立方体贴图
  • 装饰器模式 (Decorator Pattern)
  • 设计模式-创建型-单例模式
  • ssm面向品牌会员的在线商城小程序
  • 【SQL Server】华中农业大学空间数据库实验报告 实验四 完整性约束
  • IDEA2024 maven构建跳过测试
  • 【跳线帽】是什么?怎么用?
  • AIVA 技术浅析(五):使用的自然语言处理(NLP)技术浅析
  • mac homebrew国内镜像源安装
  • SpringBoot社团管理:数据驱动的解决方案
  • uniapp、js判断输入的内容是整数
  • 动态规划子数组系列一>最长湍流子数组
  • 旋转向量v和旋转矩阵R
  • 抓包 127.0.0.1 (loopback) 使用 tcpdump+wireshark
  • java计算机毕设课设—企业采购信息管理系统(附源码、文章、相关截图、部署视频)
  • netstat -tuln | grep 27017(显示所有监听状态的 TCP 和 UDP 端口,并且以数字形式显示地址和端口号)
  • R语言p值矫正整的方法
  • 全面解析 JMeter 后置处理器:概念、工作原理与应用场景
  • HCIA考试内容多吗?HCIA数通学什么?