在Ubuntu系统中使用Systemctl添加启动项的详细指南

在Ubuntu系统中使用Systemctl添加启动项的详细指南

在Ubuntu系统中,systemctl 是管理systemd服务的主要工具。通过它,你可以添加、启动、停止、重启、启用和禁用服务。

什么是Systemctl?

systemctl 是一个用于管理systemd系统和服务管理器的命令行工具。systemd是一个系统和服务管理器,作为许多Linux发行版的init系统。它提供了并行启动服务,减少启动时间的功能,并能有效管理服务依赖关系。

系统要求

  • Ubuntu系统(本指南适用于Ubuntu 16.04及更高版本)
  • 拥有sudo权限的用户账户

如何使用Systemctl添加启动项

要使用systemctl添加启动项,需要创建一个新的systemd服务单元文件,并将其配置为在系统启动时自动启动。以下是具体步骤:

步骤一:创建服务单元文件

服务单元文件定义了一个服务的行为,包括如何启动、停止和重启服务。服务单元文件通常位于/etc/systemd/system/目录下,文件名以.service结尾。以下是一个服务单元文件的示例:

[Unit]
Description=My Custom Service
After=network.target[Service]
ExecStart=/usr/bin/my_custom_service
Restart=always[Install]
WantedBy=multi-user.target

在服务单元文件中,[Unit]部分包含了服务的描述和依赖关系,[Service]部分定义了服务的启动命令、重启策略等,[Install]部分指定了服务的目标环境。

  • Description:服务的描述。
  • After:指定服务依赖的其他服务,例如network.target表示网络服务。
  • ExecStart:指定服务启动时执行的命令。
  • Restart:定义服务失败时的重启策略,always表示总是重启。
  • WantedBy:指定服务应该在哪个目标下启动,multi-user.target是多用户图形界面环境。

在创建或修改完.service配置文件后,需要重新加载systemd管理的配置文件,以使更改生效。可以使用以下命令重新加载systemd配置:

sudo systemctl daemon-reload

然后,再启用、启动、停止或重启您的服务。

步骤2:启用服务

创建服务文件后,您需要启用该服务以确保它在系统启动时自动启动:

sudo systemctl enable my_service.service

步骤3:启动服务

要立即启动服务(而不是等到下一次系统启动),您可以使用以下命令:

sudo systemctl start my_service.service

步骤4:检查服务状态

要检查服务的状态,您可以使用以下命令:

sudo systemctl status my_service.service

这将显示服务的状态,包括它是否正在运行,以及最近的日志输出。

如果服务运行正常,你将看到类似于以下的输出:

● my_custom_service.service - My Custom ServiceLoaded: loaded (/etc/systemd/system/my_custom_service.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2024-05-20 12:34:56 UTC; 1min 30s agoMain PID: 1234 (my_custom_service)Tasks: 1 (limit: 4915)Memory: 1.1MCGroup: /system.slice/my_custom_service.service└─1234 /usr/bin/my_custom_service

步骤5:重启和停止服务

如果需要,您可以使用以下命令重启或停止服务:

sudo systemctl restart my_service.service
sudo systemctl stop my_service.service

参考链接

  • Systemd 入门:链接地址
  • Ubuntu 官方文档:链接地址
  • Systemctl 手册页:链接地址
  • 编写自定义Systemd服务:链接地址

在这里插入图片描述

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

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

相关文章

OpenHarmony迎来首个互联网技术统一标准,鸿蒙OS生态走向如何?

开源三年半,OpenHarmony(以下简称“开源鸿蒙”)迎来了新进展。在5月25日召开的「OpenHarmony开发者大会」上,鸿蒙官宣了开源鸿蒙设备统一互联技术标准。 一直以来,各行业品牌操作系统相互独立、难以协同,成为其互联互通的痛点。为进一步解决…

Unity SetParent第二个参数worldPositionStays的意义

初学Unity的小知识: 改变对象的父级有三种调用方式,如下: transMe.SetParent(transParent,true); transMe.SetParent(transParent,false); transMe.parent transParent;具体有什么区别呢,这里写一个测试例子来详细说明&#xff…

数据驱动的UI艺术:智能设计的视觉盛宴

数据驱动的UI艺术:智能设计的视觉盛宴 引言 在当今这个数据泛滥的时代,大数据不仅仅是一种技术手段,它更是一种艺术形式。当大数据遇上UI设计,两者的结合便催生了一种全新的艺术形式——数据驱动的UI艺术。本文将探讨如何将数据…

STM32建立工程问题汇总

老版本MDK,例如MDK4 工程内容如下: User文件夹中存放main.c文件,用户中断服务函数(stm32f1xx.it.c),用户配置文件(stm32f1xx_hal_conf.h)等用户程序文件,或者mdk启动程序…

5,串口编程---实现简单的用串口发送接收数据

单片机通过串口向PC机发送数据 PC机通过串口接收单片机发过来的数据 1.UART和USART的区别: USART支持同步通信方式,可以通过外部时钟信号进行同步传输,而UART仅支持异步通信方式 本开发板STM32F103ZET6有5个串口,用串口1作调试串口,因为串…

关于我转生从零开始学C++这件事:升级Lv.25

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ OK了老铁们,又是一个周末,大伟又来继续给大家更新我们的C的内容了。那么根据上一篇博…

php之web开发

目标 实现一款具有常用大部分功能的WEB应用&#xff0c;并初步了解WEB漏洞原理 登录功能&#xff1a; 1、基于前端的登录功能 <!DOCTYPE html> <html> <head> <title>简单登录功能</title> </head> <meta charset"UTF-8"…

【Python】 Python中的“命名元组”:简单而强大的数据结构

基本原理 在Python中&#xff0c;namedtuple是tuple的一个子类&#xff0c;它允许我们为元组的每个位置指定一个名字。这种数据结构非常适合用于需要固定字段和值的场景&#xff0c;例如数据库查询的结果或配置文件中的设置。 namedtuple提供了一种方便的方式来访问元组中的元…

海外盲盒系统APP开发,盲盒出海热潮下的蓝海

近几年&#xff0c;我国潮玩出海成为了一个的大风口。根据数据显示&#xff0c;今年全球潮玩规模将达到400多亿美元&#xff0c;市场发展空间巨大。海外庞大的市场对于我国盲盒出海是一个较大的优势。在当下互联网的快速发展下&#xff0c;海外盲盒APP商城成为了盲盒企业出海的…

开源VS闭源:谁将引领AI大模型的新时代?

一、引言 随着人工智能技术的飞速发展&#xff0c;AI大模型已成为推动这一浪潮的核心动力。在AI大模型的发展过程中&#xff0c;开源与闭源两种不同的发展路径一直备受关注。本文将深入探讨这两种路径的优劣势&#xff0c;分析它们对AI大模型发展的影响&#xff0c;并预测谁将…

ctfshow web入门 黑盒测试

web380 这里文章看的我好有感触 但是影响做题 扫描一下 访问flag.php啥也没有再访问page.php page.php?idflagweb381 扫出来page.php但是没啥用哇&#xff0c;查看源代码 这些文件挨个试发现啥也没&#xff0c;最后仔细对比发现其实都是layui&#xff0c;然后尝试着访问…

《架演》共创者第一次线上沟通会议总结

《架演》共创者第一次线上沟通——启动会 会议主题&#xff1a;《架演》共创启动会议会议时间&#xff1a;2024年5月28日&#xff0c;20:00 - 21:00会议地点&#xff1a;腾讯会议主持人&#xff1a;寒山参会人员&#xff1a; 夏军、mirror、刘哥、悟缺席人员&#xff1a;可心、…

Cocos Creator 安卓环境配置

系统&#xff1a;Win10&#xff0c;引擎版本&#xff1a;CocosCreator3.8.2&#xff0c; 时间&#xff1a;2024.05.23 安装 Java SDK(JDK)下载地址 注意&#xff1a;Java版本对应的Gradle: 详见表 Table 1. Java Compatibility 此处选择 Java 21 对应 Gradle 8.5 配置Java系统…

2024.05.22学习记录

1、面经复习&#xff1a; Vue组件通讯、vuex、js严格模式、options请求、vue3 Setup 语法糖、React hook 2、代码随想录刷题&#xff1a;动态规划 3、rosebush组件库 完成Alert和Alert测试 Menu组件初步开发

RocketMQ 主从复制原理深度解析

提到主从复制&#xff0c;我们可能立马会联想到 MySQL 的主从复制。 MySQL 主从复制是 MySQL 高可用机制之一&#xff0c;数据可以从数据库服务器主节点复制到一个或多个从节点。 这篇文章&#xff0c;我们聊聊 RocketMQ 的主从复制&#xff0c;希望你读完之后&#xff0c;能…

文献解读-群体基因组第一期|《对BMI的影响:探究BMI的基因型-环境效应》

关键词&#xff1a;应用遗传流行病学&#xff1b;群体测序&#xff1b;群体基因组&#xff1b;基因组变异检测&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;The Impact of ACEs on BMI: An Investigation of the Genotype-Environment Effects of BMI标…

knex与sequelize 以及断点工具使用

knex 使用 SQL Query Builder for Javascript | Knex.js 首先下载 npm install knex 使用 const knex require(knex)({client: mysql,connection: {host: localhost, // 地址user: root, // 账号password: 123456, // 密码database: user // 数据库}});/*** kn…

React-组件基础使用

组件是什么 概念&#xff1a;一个组件就是用户界面的一部分&#xff0c;它可以有自己的逻辑和外观&#xff0c;组件之间可以互相嵌套&#xff0c;也可以复用多次 组件化开发可以让开发者像搭积木一样构建一个完整的庞大的应用 React组件 在React中&#xff0c;一个组件就是首…

云动态摘要 2024-05-24

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新优惠与活动 [免费试用]大模型知识引擎体验招募 腾讯云 2024-05-21 大模型知识引擎产品全新上线&#xff0c;为回馈新老客户&#xff0c;50万token免费送&#xff0c;开通服务即领取&#xff01; 云服…

git教程(IDEA + 命令行)

首先假设你已经安装 git 且 已经初始化完成&#xff1a; // 初始化git config --global user.name "你的用户名" git config --global user.email "你的邮箱"在当前文件夹下创建一个仓库&#xff0c;且该文件夹下会有多个项目 首先在当前文件夹下新建git…