• 【systemd】简单的服务创建练习


    Linux 中使用 systemd 创建一个服务来运行测试脚本是一个不错的练习。下面是一个简单创建和测试一个 systemd 服务的步骤。

    1. 创建测试脚本

    首先,创建一个简单的脚本,例如 test-script.sh

    #!/bin/bash
    
    # test-script.sh
    echo "Hello, this is a test script running as a systemd service!"
    

    将上述内容保存到 /usr/local/bin/test-script.sh,并确保脚本是可执行的:

    sudo chmod +x /usr/local/bin/test-script.sh
    

    2. 创建 systemd 服务文件

    接下来,创建一个 systemd 服务文件。服务文件通常位于 /etc/systemd/system/ 目录下。可以命名为 test-script.service

    sudo nano /etc/systemd/system/test-script.service
    

    在文件中添加以下内容:

    [Unit]
    Description=Test Script Service
    
    [Service]
    ExecStart=/usr/local/bin/test-script.sh
    StandardOutput=journal
    
    [Install]
    WantedBy=multi-user.target
    

    3. 重新加载 systemd 配置

    在创建服务文件后,重新加载 systemd 配置以使其识别新的服务:

    sudo systemctl daemon-reload
    

    4. 启动服务

    可以使用以下命令启动服务:

    sudo systemctl start test-script.service
    

    5. 查看服务输出

    由于我们将输出定向到系统日志,可以使用 journalctl 查看输出:

    sudo journalctl -u test-script.service
    

    如果要查看最新的输出,可以使用:

    sudo journalctl -u test-script.service -f
    

    6. 设置服务开机自启(可选)

    如果希望该服务在系统启动时自动启动,可以运行:

    sudo systemctl enable test-script.service
    

    7. 停止和禁用服务(可选)

    要停止服务,可以运行:

    sudo systemctl stop test-script.service
    

    要禁用开机自启,可以运行:

    sudo systemctl disable test-script.service
    

    8. 其他补充

    StandardOutput=journal 将服务的标准输出重定向到 systemd 日志中。默认不填也是这个配置。

    使用 StandardOutputStandardError 重定向到文件

    另一种更常见和简单的方法是将输出重定向到文件,然后查看文件内容:

    1. 编辑服务文件

      [Unit]
      Description=Test Script Service
      
      [Service]
      ExecStart=/usr/local/bin/test-script.sh
      StandardOutput=file:/var/log/test-script.log
      StandardError=file:/var/log/test-script.err
      
      [Install]
      WantedBy=multi-user.target
      

      在上述配置中,标准输出被重定向到 /var/log/test-script.log,标准错误被重定向到 /var/log/test-script.err

    2. 重新加载 systemd 配置

      sudo systemctl daemon-reload
      
    3. 启动服务

      sudo systemctl start test-script.service
      
    4. 查看输出文件

      可以查看 /var/log/test-script.log/var/log/test-script.err 文件以获取输出:

      cat /var/log/test-script.log
      cat /var/log/test-script.err
      

    总结

    日志更常见的做法是将输出重定向到文件或日志系统。将输出重定向到文件不仅更容易管理,还能持久保存日志信息供日后查看和分析。

  • 相关阅读:
    【赠书活动】浅谈C#中垃圾回收机制
    npm版本号含义
    Linux 软链接 与 硬链接 的区别
    项目进展(九)-完善ADS1285代码
    解决requests库进行爬虫ip请求时遇到的错误的方法
    深度学习之基于Python+OpenCV(DNN)性别和年龄识别系统
    GPT系列论文解读:GPT-2
    【Java】抽象类
    vscode 远程开发
    理论+案例,带你掌握Angular依赖注入模式的应用
  • 原文地址:https://blog.csdn.net/qq_38202733/article/details/140373434