首页 > 其他分享 >如何创建和管理自定义systemd服务

如何创建和管理自定义systemd服务

时间:2024-09-06 22:04:26浏览次数:12  
标签:systemd 服务 service 自定义 创建 custom my

创建和管理自定义 systemd 服务是 Linux 系统管理中的一项重要技能。systemd 是一种初始化系统和服务管理器,广泛应用于现代 Linux 发行版。以下是创建和管理自定义 systemd 服务的详细步骤。

1. 创建自定义服务单元文件

自定义服务的配置文件称为“单元文件”,通常位于 /etc/systemd/system/ 目录下。

步骤:

  1. 创建服务单元文件
    使用文本编辑器(如 nanovim)创建一个新的服务单元文件。命名格式通常为 <service_name>.service

    sudo nano /etc/systemd/system/my_custom_service.service
    
  2. 编写单元文件内容
    在文件中添加以下基本内容:

    [Unit]
    Description=My Custom Service
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/my_custom_script.sh
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    • [Unit]:服务的描述和依赖关系。
    • [Service]:服务的执行命令和重启策略。
    • [Install]:服务的启动目标。

2. 重新加载 systemd 配置

在创建或修改单元文件后,需要重新加载 systemd 配置,以使更改生效。

sudo systemctl daemon-reload

3. 启动和管理服务

启动服务

使用 systemctl 命令启动自定义服务:

sudo systemctl start my_custom_service

查看服务状态

要查看服务的当前状态,可以使用:

sudo systemctl status my_custom_service

启用服务

如果希望服务在系统启动时自动启动,可以使用:

sudo systemctl enable my_custom_service

停止和禁用服务

停止服务可以使用:

sudo systemctl stop my_custom_service

禁用服务以防止其在启动时运行:

sudo systemctl disable my_custom_service

4. 日志管理

systemd 提供了 journalctl 命令,可以查看服务的日志输出:

journalctl -u my_custom_service

5. 示例

假设您有一个脚本 /usr/bin/my_custom_script.sh,内容如下:

#!/bin/bash
echo "Hello, World!" >> /var/log/my_custom_service.log

确保该脚本具有可执行权限:

sudo chmod +x /usr/bin/my_custom_script.sh

然后,按照上述步骤创建服务单元文件,重新加载 systemd,启动服务,您应该能在 /var/log/my_custom_service.log 中看到输出。

总结

通过以上步骤,您可以轻松创建和管理自定义 systemd 服务。掌握这些技能后,您能够更有效地管理系统服务,并根据需要扩展和优化它们的功能。

标签:systemd,服务,service,自定义,创建,custom,my
From: https://www.cnblogs.com/love-DanDan/p/18401136

相关文章

  • 记录 PyQt6 / PySide 6 自定义边框窗口的 Bug 及可能可行的解决方案:窗口抖动和添加 DW
    前言:本篇文章将要讨论我在前不久发表的关于PyQt6/PySide6自定义边框窗口代码及内容中的问题:(终)PyQt6/PySide6+Pywin32自定义标题栏窗口+完全还原Windows原生窗口边框特效_pyside6win32无边框窗口-CSDN博客https://blog.csdn.net/2402_84665876/article/detail......
  • Linux用户创建命令
    创建一个新用户useradd新用户名如果不设定它属于哪个组,它会默认在创建它的用户的组里设置密码passwd新用户名查看所有组的简单信息moregroup设置新的组groupadd新的组名创建新用户并把它放在新的组里,不在默认的组useradd新用户名-g新的用户组把旧用户改......
  • 自定义排序规则
    Comparator接口的使用:TreeSet集合存储自定义类型的对象时,必须指定排序规则,支持如下两种方式来指定比较规则。方式一让自定义的类实现Comparable接口,重写里面的compareTo方法来指定比较规则。​//属性类publicclassStudentimplementsComparable<Student>{  privat......
  • VUE框架Vue3使用自定义事件的方式传递数据------VUE框架
    <template><!--给User绑定事件--><!--带参数的方法不要有括号,否则识别不到,我不懂原理...--><User@event1="showInfo"></User></template><script>importUserfrom"./components/User.vue"exportdefault{......
  • C语言-第六章-加餐:其他自定义类型
    传送门:C语言-第六章:结构体目录第一节:位段    1-1.位段是什么    1-2.位段的大小第二节:联合体    2-1.联合体是什么    2-2联合体的大小第三节:枚举类型    3-1.枚举是什么第四节:结构体中的柔性数组    4-1.柔性数组......
  • 功能发布-自定义SQL查询
    引言本期主要为大家介绍ClkLog九月上线的新功能-自定义SQL查询。什么是自定义SQL查询?自定义SQL查询是指根据具体的应用场景和需求,由开发者或数据库管理员自行编写的SQL(StructuredQueryLanguage,结构化查询语言)语句。自定义SQL查询有什么作用?以精确的方式从数据库中检索数据。在Cl......
  • 【python创建字符串数组的几种方式】
    在Python中可以使用以下几种方式创建字符串数组:一、使用列表(list)列表可以存储多个字符串,类似于其他语言中的数组。#创建一个包含多个字符串的列表string_array=['apple','banana','cherry']print(string_array)二、使用元组(tuple)元组与列表类似,但元组是不可......
  • C++创建与调用dll动态链接库(MinGW64 Dev-C++)
    本文使用的是dev-c++,如果涉及到VC++中不一样的操作,也会适当进行区分。项目一:创建DLL1、创建一个DLL类型的项目,当前命名为dlltest,并选择合适的路径进行保存。 2、在生成的预设置代码中,加入如下代码//这是头文件dll.h#ifndef_DLL_H_#define_DLL_H_#ifBUILDING_DLL#de......
  • 蓝桥杯-STM32G431RBT6工程创建和程序烧录(保姆级图文详解)
    文章目录前言蓝桥杯嵌入式赛道所使用的开发板为STM32G431RBT6 CT117E-M4开发板(新版),如下图:一、需要安装的环境keilMDK,stm32cubemx,官方提供的资源包二、使用步骤(STM32cubemx部分)1,首先打开STM32cubemx注:蓝桥杯用HAL库更节省比赛时间,也更方便修改2,创建项......
  • vue自定义指令
    现象:可使用自定义指令v-per实现:index.js文件importperfrom"./per"importper2from"./per2"//批量注册指令(现在就一个permission)constdirectives={per,per2}//注册的一般写法,循环遍历directives,通过vue.directive注册exportdefault{inst......