Linux Systemd服务创建与配置

在/etc/systemd/system/目录创建并配置服务:
  1. 创建一个新的systemd服务单元文件,以描述你的服务配置。

    sudo vi /etc/systemd/system/my-service.service
  2. 在打开的文件中,添加以下内容来定义你的服务配置:

    [Unit]
    Description=mqnamesrv
    After=network.target
    ​
    [Service]
    ExecStart=/app/rocketmq/rocketmq-all-4.7.1-bin-release/bin/mqnamesrv
    WorkingDirectory=/app/rocketmq/rocketmq-all-4.7.1-bin-release/
    User=username
    Group=groupname
    Restart=always
    ​
    [Install]
    WantedBy=multi-user.target
    • Description:服务的描述信息。

    • After:指定服务应该在哪些依赖项之后启动。

    • ExecStart:指定要运行的后台命令的路径。

    • WorkingDirectory:指定命令的工作目录。

    • User:指定服务运行的用户。

    • Group:指定服务运行的用户组。

    • Restart:指定服务在意外停止后是否自动重启。

    • WantedBy:指定服务应该被启用的目标。

    请替换上述内容中的路径、用户名和组名为你实际的配置。

  3. 保存并关闭文件。

  4. 重新加载systemd配置,使新的服务生效:

    sudo systemctl daemon-reload
  5. 启动服务:

    sudo systemctl start my-service

    可以使用 sudo systemctl status my-service 命令来检查服务的状态和日志输出,确保它正常运行。

  6. 如果你希望服务在系统启动时自动启动,执行以下命令:

    sudo systemctl enable my-service

    这样服务将会在系统启动时自动启动。

    现在,你的后台运行命令已经配置为自启动服务。你可以使用systemd命令来管理和控制该服务,例如启动、停止、重启和查看状态等。

在其它目录创建服务Unit文件并配置

也可以在其它目录创建Unit服务配置文件,比如在/opt/

创建文件ka.service,那么文件完整路径即是/opt/ka.service

然后在/etc/systemd/system/目录中,使用ln -s ka.service /opt/ka.service创建链接,然后enable ka.service即开机自启动

cd /etc/systemd/system/
sudo ln -s ka.service /opt/ka.service
sudo systemctl enable ka.service

后来想到,试一下不在/etc/systemd/system/做符号链接,直接在/opt/创建ka.service文件后,直接systemctl enable ka.service:

root@tin:~# cd /opt/
root@tin:/opt# systemctl enable ka.service
Failed to enable unit: Unit file ka.service does not exist.
root@tin:/opt# systemctl enable /opt/ka.service
Created symlink /etc/systemd/system/ka.service → /opt/ka.service.
Created symlink /etc/systemd/system/multi-user.target.wants/ka.service → /opt/ka.service.
​

看到,这时使用systemctl enable ka.service 是不行的,会说不存在,即使当前目录下有这个文件,估计没有加目录前缀,系统默认就是去/etc/systemd/system目录里去找的。加上绝对路径,再进行enable,结果可以了,而且这种方式,系统自动给你在/etc/systemd/system/目录创建了符号链接,倒是省去了我们自己创建符号链接的操作。

查看服务是否已经enable(开机自启):

systemctl is-enabled your-service-name

timer定义小贴士

定时器timer的定义中,如果没有显示的定义 unit 字段,默认是和 timer 同名 service 单元。

查看已经生效的timer
systemctl list-timers
timer生效

定义好timer,并enable timer(systemctl enable ka.timer)后,如果机器没有重启,则需要执行以下命令让timer生效(刷新,并至少使用start执行一次,才会间隔一段时间去执行):

systemctl daemon-reload
systemctl start ka.timer

如果机器要重启,或者是定义在容器Dockerfile,反正就是后面会再开机,则直接

systemctl enable ka.timer

执行过enable即可,无须再执行start。

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

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

相关文章

无人机GB42590接收端 +接收端模组,同时支持2.4G与5.8G双频

严格按照GB42590的协议开发的发射端,通过串口和模块通讯,默认波特率 921600。 http://www.doit.am/深圳四博智联科技有限公司https://shenzhendoit.taobao.com/category-1734422372.htm?spma1z10.1-c-s.0.0.560c74d77eT01G&searchy&catNameGB4…

VC2022 + protobuf

google这是有私心啊,protobuf从某个版本开始,依赖了一个google自己推出的大型组件集,Abseil,有点类似于Boost了,业内用的人,从个人狭窄的圈子来说,应该是不多的,据说google的众贤用的…

ViewPager2 解决Fragment数据不刷新的问题

一、前言 在最近使用ViewPager2显示多个Fragment的时候遇到一个问题,就是我在删除某个fragment的时候发现更新适配器后页面并没有和如期的一样删除这个fragment,看下到底发生了什么? 二、问题剖析 一般我们刷新页面常用的方法是调用适配器…

【LLMOps】小白详细教程,在Dify中创建并使用自定义工具

文章目录 博客详细讲解视频点击查看高清脑图 1. 搭建天气查询http服务1.1. flask代码1.2. 接口优化方法 2. 生成openapi json schema2.1. 测试接口2.2. 生成openapi schema 3. 在dify中创建自定义工具3.1. 导入schema3.2. 设置工具认证信息3.3. 测试工具 4. 调用工具4.1. Agent…

docker启动的mysql8中文乱码问题和无法输入中文

问题描述: 1.中文显示乱码 2.无法输入中文 中文乱码临时方案: show variables like ‘character%’; SET NAMES utf8mb4; SET CHARACTER SET utf8mb4; 中文乱码永久方案: vim /etc/my.cnf[client] default-character-setutf8mb4[mysql]…

Linux详解:进程创建

文章目录 进程创建fork函数写时拷贝页表fork常规用法fork调用失败的原因 进程创建 fork函数 在linux 中fork函数&#xff0c;它从已经存在的进程中创建一个新的进程&#xff0c;新进程为子进程&#xff0c;而原进程为父进程。 #include<unistd.h> pid_t fork(void);返…

嵌入式学习58-ARM7(字符设备驱动框架led)

知识零碎&#xff1a; kernel 内核 printk 内核打印 cat /proc/devices insmod …

如何通过安全数据传输平台,保护核心数据的安全传输?

在数字化的浪潮中&#xff0c;企业的数据安全传输显得尤为关键。随着网络攻击手段的日益复杂&#xff0c;传统的数据传输方式已不再安全&#xff0c;这就需要我们重视并采取有效的措施&#xff0c;通过安全数据传输平台来保护核心数据。 传统的数据传输面临的主要问题包括&…

C++ std::variant 总结

C std::variant 总结 文章目录 一、std::variant 的由来二、std::variant 用法简介2.1、类型安全保证2.2、访问 std::variant 三、std::variant vs OO 本文来记录一下对C标准库的 std::variant (带标签的联合体)用法的总结。参考文章: hhttps://boolan.com/ 一、std::variant …

【介绍下IDM的实用功能】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

【已解决】仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用。

当我们在使用vs code运行.c文件时可能会出现如下报错&#xff1a; 这是因为我们使用的生成和调试方式是cl.exe&#xff0c;我们需要更改到gcc.exe。 解决办法&#xff1a; 将所需运行的文件复制粘贴到新的一个文件夹下&#xff0c;此时再点击运行按钮会弹出如下窗口&#xf…

Vue入门到关门之计算属性与监听属性

一、计算属性 1、什么是计算属性 计算属性是基于其它属性计算得出的属性&#xff0c;就像Python中的property&#xff0c;可以把方法/函数伪装成属性&#xff0c;在模板中可以像普通属性一样使用&#xff0c;但它们是基于响应式依赖进行缓存的。这意味着只有在依赖的响应式数…

Mysql 存在多条数据,按时间取最新的那一组数据

1、数据如下&#xff0c;获取每个用户最近的一次登录数据 思路1&#xff1a;order by group by 先根据UserIdLogInTime排序&#xff0c;再利用Group分组&#xff0c;即可得到每个User_Id的最新数据。 1 SELECT * FROM login_db l ORDER BY l.user_id, l.login_time DESC; 排…

基于车载点云数据的城市道路特征目标提取与三维重构

作者&#xff1a;邓宇彤&#xff0c;李峰&#xff0c;周思齐等 来源&#xff1a;《北京工业大学学报》 编辑&#xff1a;东岸因为一点人工一点智能公众号 基于车载点云数据的城市道路特征目标提取与三维重构本研究旨在弥补现有研究在处理复杂环境和大数据量上的不足&#xf…

MFC实现ini配置文件的读取

MFC实现 ini 配置文件的读取1 实现的功能&#xff1a;点击导入配置文件按钮可以在旁边编辑框中显示配置文件的路径&#xff0c;以及在下面的编辑框中显示配置文件的内容。 1. 显示配置文件内容的编辑框设置 对于显示配置文件内容的 Edit Contorl 编辑框的属性设置如下&#x…

在Docker容器中部署LibreOffice:通过Dockerfile定制高效办公环境

随着容器技术的普及,Docker已成为快速部署和管理应用的首选工具。LibreOffice作为一款开源的办公套件,以其丰富的功能和兼容性受到许多企业和个人用户的青睐。将LibreOffice集成到Docker容器中,不仅便于跨平台部署,还能实现资源的隔离和管理,特别适合云环境下的文档处理服…

绘唐3怎么联系团长299矩阵反推模块使用说明

反推配置说明看这里:团长https://qvfbz6lhqnd.feishu.cn/wiki/D3YLwmIzmivZ7BkDij6coVcbn7W MJ配置说明 如上图 选择公有云,即可体验

Linux计划任务书以及定时任务的编写

一、程序可以通过两种方式执行&#xff1a; 手动执行利用调度任务&#xff0c;依据一定的条件自动执行 自动执行可通过一下两个命令来实现: &#xff08;1&#xff09;At &#xff08;单一工作调度&#xff09; &#xff08;2&#xff09;Cron &#xff08;循环工作调度&a…

JavaScript 中 ES6

在ES6&#xff08;ECMAScript 2015&#xff09;中&#xff0c;JavaScript引入了一些新的语法和特性来支持面向对象编程&#xff08;OOP&#xff09;。下面是对ES6中面向对象编程的详细解释&#xff1a; 类&#xff08;Class&#xff09;&#xff1a; ES6引入了类的概念&#xf…

HTML实体编码

HTML实体编码是HTML中用来替换特殊字符的一种机制&#xff0c;以确保这些特殊字符在浏览器中能够正确显示 这些特殊字符在HTML中具有特定的含义&#xff0c;比如小于号“<”用来表示HTML标签的开始&#xff0c;大于号“>”用来表示HTML标签的结束&#xff0c;而引号可能…