【 Ubuntu】systemd服务创建、启用、状态查询、自启等

要在 Ubuntu 启动后执行一个守护脚本,您可以使用 Shell 脚本编写一个 systemd 服务单元。systemd 是 Ubuntu 中常用的服务管理工具,可以在系统启动时自动启动和管理服务。

下面是一个示例的守护脚本和 systemd 服务单元的步骤:

  1. 创建守护脚本:
    创建一个 Shell 脚本文件,例如 mydaemon.sh,并在其中编写您的守护脚本代码。确保脚本具有可执行权限。示例脚本如下:

    #!/bin/bashwhile true; do# 在此处编写您的守护脚本逻辑echo "Hello, I am a daemon script."sleep 10
    done
    ```请根据您的实际需求编写守护脚本的逻辑。
  2. 创建 systemd 服务单元:
    /etc/systemd/system/ 目录下创建一个 .service 文件,例如 mydaemon.service。这个文件命名可以根据您的需求进行修改。示例服务单元文件如下:

    [Unit]
    Description=My Daemon Service
    After=network.target[Service]
    ExecStart=/path/to/mydaemon.sh
    Restart=always[Install]
    WantedBy=default.target
    

ExecStart 的路径 /path/to/mydaemon.sh 替换为您实际的守护脚本的路径。您可以在 Description 字段中为服务提供一个描述,并根据需要进行其他配置。

Restart=always 将使得 服务开机自启,如果挂掉,自己也会重启。

  1. 设置权限和重载 systemd:
    在终端中执行以下命令,设置服务单元文件的权限并重载 systemd:

    
    sudo chmod 644 /etc/systemd/system/mydaemon.service
    sudo systemctl daemon-reload```
  2. 启用和启动服务:
    在终端中执行以下命令,启用并启动您的守护脚本服务:

    
    sudo systemctl enable mydaemon.service
    sudo systemctl start mydaemon.service```

现在,您的守护脚本将在 Ubuntu 启动后自动运行,并作为后台服务持续运行。

您可以使用以下命令来管理您的守护脚本服务:

  • 启动服务:sudo systemctl start mydaemon.service
  • 停止服务:sudo systemctl stop mydaemon.service
  • 重启服务:sudo systemctl restart mydaemon.service
  • 禁用服务:sudo systemctl disable mydaemon.service
  • 查看服务状态:sudo systemctl status mydaemon.service

希望这个指南对您有所帮助。如果您有任何进一步的问题,请随时提问。

测试过程如下

创建 脚本过程省略,以下步骤展示了相关文件及文件内容,如需实践,请自行从上文查找
在这里插入图片描述

以下演示,步骤如下:
1、重新加载了 serivice 库
2、启用自定义的 mydaemon.service
3、启动自定义的 mydaemon.service
3、查看 mydaemon.service 状态(使用了两种命令)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/140630.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring之依赖注入源码解析

基于Autowired的依赖注入底层原理 基于Resource注解底层工作流程图: 1 Spring中到底有几种依赖注入的方式? 首先分两种: 手动注入 自动注入 1.1 手动注入 在XML中定义Bean时,就是手动注入,因为是程序员手动给某…

LeetCode 75-02:字符串的最大公因子

前置知识:使用欧几里得算法求出最大公约数 func gcdOfStrings(str1 string, str2 string) string {if str1str2 ! str2str1 {return ""}return str1[:gcd(len(str1), len(str2))] }func gcd(a, b int)int{if b 0{return a}return gcd(b, a%b) }

车载软件架构 —— AUTOSAR Vector SIP包(二)

车载软件架构 —— AUTOSAR Vector SIP包(二) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在…

Android Kotlin 基础详解

1,基础语法 1.1 可变变量与不可变变量 可以多次赋值的变量是可变变量&#xff0c;用关键字var表示&#xff1a; var <标识符> : <类型> <初始化值> 注意&#xff0c;在kotlin中成员变量不会赋默认值&#xff0c;不像java一样&#xff0c;必须手动添加默…

83、SpringBoot --- 下载和安装 MSYS2、 Redis

★ 下载和安装MSYS2&#xff08;作用&#xff1a;可在Windows模拟一个Linux的编译环境&#xff09; 得到Redis的编译环境——在Linux平台上&#xff0c;这一步可以省略。&#xff08;1&#xff09;登录MSYS2官网&#xff08;http://repo.msys2.org/distrib/ &#xff09;下载M…

Java 项目-基于 SpringBoot+Vue的疫情网课管理系统

文章目录 第一章 简介第二章 技术栈第三章 系统分析3.4.2学生用例 第四章 系统设计第五章 系统实现5.1学生功能模块5.2管理员功能模块5.3教师功能模块 六 源码咨询 第一章 简介 疫情网课也都将通过计算机进行整体智能化操作&#xff0c;实现的功能如下。 例如 管理员&#x…

【力扣-每日一题】LCP 06. 拿硬币

class Solution { public:int minCount(vector<int>& coins) {int res0;for(auto i:coins){resi/2;res(i%2)?1:0;}return res;} };

2023 年前端 UI 组件库概述,百花齐放!

UI组件库提供了各种常见的 UI 元素&#xff0c;比如按钮、输入框、菜单等&#xff0c;只需要调用相应的组件并按照需求进行配置&#xff0c;就能够快速构建出一个功能完善的 UI。 虽然市面上有许多不同的UI组件库可供选择&#xff0c;但在2023年底也并没有出现一两个明确的解决…

《计算机视觉中的多视图几何》笔记(10)

10 3D Reconstruction of Cameras and Structure 本章主要描述了如何利用2张图片来恢复相机的参数以及物体在三维空间中的形状。 文章目录 10 3D Reconstruction of Cameras and Structure10.1 Outline of reconstruction method10.2 Reconstruction ambiguity10.3 The proje…

批量、在线学习, 参数、非参数学习

批量学习&#xff08;Batch Learning&#xff09;和在线学习&#xff08;Online Learning&#xff09; 批量学习 批量学习的概念非常容易理解&#xff0c;我们之前介绍的许多机器学习算法&#xff0c;如果没有特殊说明&#xff0c;都可以采用批量学习的方式。批量学习的过程通…

【C++】布隆过滤器简单操纵模拟以及常见题目

&#x1f30f;博客主页&#xff1a; 主页 &#x1f516;系列专栏&#xff1a; C ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ &#x1f60d;期待与大家一起进步&#xff01; 文章目录 前言一、求下标仿函数的建议二、布隆过滤器代码面试题1.近似算法&#xff1a;2.精确算…

CompletableFuture-FutureTask

2. CompletableFuture 语雀 2.1 Future接口理论知识复习 Future接口&#xff08;FutureTask实现类&#xff09;定义了操作异步任务执行一些方法&#xff0c;如获取异步任务的执行结果、取消异步任务的执行、判断任务是否被取消、判断任务执行是否完毕等。 举例&#xff1a;…

Cortex-M3/M4之SVC和PendSV异常

一、SVC异常 SVC(系统服务调用&#xff0c;亦简称系统调用)用于产生系统函数的调用请求。例如&#xff0c;操作系统不让用户程序直接访问硬件&#xff0c;而是通过提供一些系统服务函数&#xff0c;用户程序使用 SVC 发出对系统服务函数的呼叫请求&#xff0c;以这种方法调用它…

“源启2.0”:从自上而下的解构,到自下而上的重构

从垂直打穿、到应用重构&#xff0c;中电金信赋能行业数字化转型之路既“向下走”、也“向上看”。“向上”先理解和吃透客户的企业战略&#xff0c;进而自上而下地将企业战略拆解为业务架构&#xff0c;“向下”再将业务架构拆解为应用架构和数据架构&#xff0c;并进一步对齐…

【Acwing1027】方格取数(动态规划)题解

题目描述 思路分析 错误思路&#xff1a; 贪心法&#xff0c;先走一次求出最大值&#xff0c;把走过的路上面的数值清零&#xff0c;然后用同样的方法再走一遍求最大值&#xff0c;然后让这两个最大值相加就是最后的结果。 很多人在看到这个题目的时候会有上面的思路&#x…

Jmeter接口测试

前言&#xff1a; 本文主要针对http接口进行测试&#xff0c;使用Jmeter工具实现。 Jmter工具设计之初是用于做性能测试的&#xff0c;它在实现对各种接口的调用方面已经做的比较成熟&#xff0c;因此&#xff0c;本次直接使用Jmeter工具来完成对Http接口的测试。 1.介绍什么是…

停车场系统源码

源码下载地址&#xff08;小程序开源地址&#xff09;&#xff1a;停车场系统小程序&#xff0c;新能源电动车充电系统&#xff0c;智慧社区物业人脸门禁小程序: 【涵盖内容】&#xff1a;城市智慧停车系统&#xff0c;汽车新能源充电&#xff0c;两轮电动车充电&#xff0c;物…

Linux下ThinkPHP5实现定时器任务 - 结合crontab

实例一&#xff1a; 1.在/application/command创建要配置的PHP类文件&#xff0c;需要继承Command类&#xff0c;并重写configure和execute两个方法&#xff0c;例如: <?php namespace app\command; use think\console\Command; use think\console\Input; use think\cons…

“降本”是关键,FCU1104打造低成本工商业储能EMS

在不久前举行的EESA中国国际储能展上&#xff0c;“工商业储能”成为了热度最高的话题之一&#xff0c;几乎每家展出工商业储能系统的展商都收获了大量观众的驻足围观&#xff0c;热度非凡。究竟是怎样的原因让工商业储能如此瞩目呢&#xff1f; 通过与多家储能厂家沟通并查阅…

【音视频】ffplay源码解析-PacketQueue队列

包队列架构位置 对应结构体源码 MyAVPacketList typedef struct MyAVPacketList {AVPacket pkt; //解封装后的数据struct MyAVPacketList *next; //下一个节点int serial; //播放序列 } MyAVPacketList;PacketQueue typedef struct PacketQueue {MyAVPacketList …