码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • systemd 强大的初始化系统和服务管理器


    在Linux下,systemd 是一个非常强大的初始化系统和服务管理器,
    它可以用来管理各种系统服务和进程。如果想要使用 systemd 来监控一个进程,
    并在它退出时自动重新启动它,可以为该进程创建一个 systemd 服务单元文件。

    以下是如何为一个进程创建一个简单的 systemd 服务单元文件,并在进程退出时自动重启它的步骤:

      以a.out为例子,改程序在/opt路径下存储,用户为test


    首先,创建一个新的服务单元文件:


    sudo nano /etc/systemd/system/a-out.service

    然后,将以下内容粘贴到文件中:

    ini
    [Unit]  
    Description=Custom Service for a.out  
    After=network.target  
     
    [Service]  
    Type=simple  
    ExecStart=/opt/a.out  
    Restart=on-failure  
    RestartSec=5  
    User=test  
    Group=test  
     
    [Install]  
    WantedBy=multi-user.target

    这里的关键点解释:

        Type=simple 表示这个服务将立即启动并等待 ExecStart 命令完成。
        ExecStart=/opt/a.out 指定了要运行的程序。
        Restart=on-failure 表示当服务进程异常退出时(返回值非零)重启它。如果你想在程序正常退出(返回值零)时也重启,可以使用 Restart=always。
        RestartSec=5 表示在重启服务之前等待5秒。
        User=test 和 Group=test 指定了运行服务的用户和组。

    保存并关闭文件后,重新加载 systemd 配置:


    sudo systemctl daemon-reload

    接下来,启用这个服务,以便在系统启动时自动运行:


    sudo systemctl enable a-out.service

    最后,启动服务:


    sudo systemctl start a-out.service

    现在,a.out 应该在开机时自动启动,并且如果它退出,systemd 会在5秒后尝试重新启动它。请注意,Restart=on-failure 只有在进程非零退出时才会重启,如果你希望无论何种情况都重启,请更改为 Restart=always。

    确保 /opt/a.out 是一个可执行文件,并且 test 用户有权限执行它。如果需要,你可能需要调整文件权限或所有权:


    sudo chown test:test /opt/a.out  
    sudo chmod +x /opt/a.out

    此外,请检查 a.out 是否设计为在后台运行或是否使用了任何守护进程模式,因为 systemd 通常期望服务在后台运行。如果 a.out 是一个交互式程序,你可能需要对其进行修改或包装,以便它可以作为服务运行。

  • 相关阅读:
    HCIP-R&S By Wakin自用笔记(3)OSPF之引入外部路由、Forwarding-Address、汇总、特殊区域
    【配置Hifive1-revB】设备管理器中不识别端口,Can not connect to J-Link via USB的解决办法
    淘宝/天猫按图搜索淘宝商品(拍立淘) API 返回值说明
    Eureka 学习笔记(2)加载eureka-server.properties中的配置
    穿越时空,探索未来的云计算世界
    门罗币隐私保护之隐形地址
    强强联手,NVIDIA 与 Ampere Computing 重磅推出云原生服务器平台
    JS中 new Date() 各方法的用法
    如何防止用户重复提交订单?(上)
    RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR
  • 原文地址:https://blog.csdn.net/farsight_2098/article/details/138167609
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号