运维之systemd 服务(Systemd Service of Operations and Maintenance)

  💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


本人主要分享计算机核心技术:系统维护、数据库、网络安全、自动化运维、容器技术、云计算、人工智能、运维开发、算法结构、物联网、JAVA 、Python、PHP、C、C++等。
不同类型针对性训练,提升逻辑思维,剑指大厂,非常期待和您一起在这个小小的网络世界里共同探索、学习和成长

运维之systemd 服务

背景介绍

从 Ubuntu 17.10 开始,/etc/rc.local 文件不再默认存在于系统中,因为 systemd 已成为主要的初始化系统。如果需要在系统启动时自动执行某些命令,可以通过编写 Shell 脚本并将其封装为一个 systemd 服务来实现这一操作。

实现方法

这里以一个简单的脚本为例,将需要开机自动执行的命令写入脚本文件内,赋予可执行权限。

脚本内容如下:

#!/usr/bin/env bash
sudo ip route del default via 192.168.1.254
sudo ip route add 192.168.101.0/24 via 192.168.1.254 dev ens33

该脚本用于删除和添加路由,赋予脚本可执行权限

sudo chmod +x /usr/local/bin/routeadd.sh

创建 systemd 文件

文件存放位置:

/etc/systemd/system/xx.service

写入以下内容,在 ExecStart 中指定脚本存放位置

[Unit]
Description=routeadd
After=network.target[Service]
Type=oneshot
ExecStart=/usr/local/bin/routeadd.sh
Restart=on-failure[Install]
WantedBy=multi-user.target

修改完成后赋予自定义文件可执行权限

sudo chmod +x  /etc/systemd/system/xx.service

最后,设置为开机自启动即可

systemctl enable routeadd.service

查看开机启动项,可以看到自定义的服务已经设置成功了

PS:如果当前用户为普通用户,需要注意脚本内容中是否有需要使用 sudo 命令的部分。如果有,需提前为该用户配置免密执行 sudo 的权限,否则脚本将无法正确执行。

配置用户免密执行sudo

为了使普通用户能够免密执行自定义脚本并实现开机自启动,需要修改 /etc/sudoers 文件,添加相应的免密执行命令及其对应的用户

#配置这个是对sudo组中的所有用户生效
%sudo  ALL=(ALL:ALL) ALL
%sudo  ALL=(ALL:ALL)  NOPASSWD:/usr/sbin/ip,/usr/bin/systemctl
#如只需要对单独的用户生效,则注释掉%sudo该行,添加以下内容即可,test为用户名
test  ALL=(ALL:ALL) ALL
test  ALL=(ALL:ALL)  NOPASSWD:/usr/sbin/ip,/usr/bin/systemctl

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

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

相关文章

Vue — 组件化开发

组件化开发:一个页面可以拆分成一个个组件;每个组件都有自己独立的结构、样式、行为 组件分类:普通组件、根组件 其中根组件包裹着所有普通小组件 普通组件的注册使用;有两种注册方式 局部注册全局注册 局部注册 目标&#xff…

【软考】系统架构设计师-计算机系统基础(2):操作系统

1、操作系统基础 OS的5个核心功能:进程管理、存储管理、设备管理、文件管理、作业管理 OS的3个作用:管理运行的程序和分配各种软硬件资源;提供友善的人机界面;为程序应用的开发和运行提供高效的平台 OS的4个特征:并…

Android ANR分析总结

1、ANR介绍 ANR(Application Not Responding)指的是应用程序无响应,当Android应用程序在主线程上执行长时间运行的操作或阻塞I/O操作时发生。这可能导致应用程序界面冻结或无法响应用户输入。 1、Service ANR:前台20s&#xff0…

WebRTC视频 01 - 视频采集整体架构

一、前言: 我们从1对1通信说起,假如有一天,你和你情敌使用X信进行1v1通信,想象一下画面是不是一个大画面中有一个小画面?这在布局中就叫做PIP(picture in picture);这个随手一点&am…

Jenkins应用详解(Detailed Explanation of Jenkins Application)

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…

【Python】计算机视觉应用:OpenCV库图像处理入门

计算机视觉应用:OpenCV库图像处理入门 在当今的数字化时代,计算机视觉(Computer Vision)已经渗透到各行各业,比如自动驾驶、智能监控、医疗影像分析等。而 Python 的 OpenCV 库(Open Source Computer Visi…

ctfshow-web入门-反序列化(web260-web264)

目录 1、web260 2、web261 3、web262 4、web263 5、web264 1、web260 要求传入的内容序列化后包含指定内容即可,在 PHP 序列化中,如果键名或值包含 ctfshow_i_love_36D,那么整个序列化结果也会包含这个字符串。 payload: ?…

Python 爬虫运行状态监控:进度、错误与完成情况

Python 爬虫运行状态监控:进度、错误与完成情况 在进行大规模数据爬取时,监控爬虫的运行状态至关重要。通过实时监控,可以了解爬虫的工作进度、出现的错误以及任务完成情况。这样可以及时发现并解决问题,确保数据抓取任务顺利进行…

Flutter错误: uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared

前言 今天要做蓝牙通信的功能,我使用了flutter_reactive_ble这个库,但是在运行的时候发现一下错误 Launching lib/main.dart on AQM AL10 in debug mode... /Users/macbook/Desktop/test/flutter/my_app/android/app/src/debug/AndroidManifest.xml Err…

除了易我数据恢复,这10个数据恢复软件也能点亮数据找回的希望之光。

易我数据恢复工具具有广泛的系统兼容性,并且里面功能丰富,操作简单,能够完成多种数据恢复操作,是一款比较专业的数据恢复软件。如果大家在为数据丢失而烦恼的话,我可以推荐几款好用的数据恢复软件给大家。 1、福昕数据…

Vue Cli 脚手架目录文件介绍

小试牛刀 //vetur高亮; vuetab 快速生成 <template><div class"box">我是个盒子<button click"fn">按钮</button></div> </template><script> export default {methods:{fn(){alert("Hello Vue")}} …

在公司中,如何表现出自己的高情商,学会这三句话就可以了

在职场中&#xff0c;高情商的重要性不言而喻。它能帮助你更好地处理人际关系&#xff0c;提升团队协作效率&#xff0c;还能让你在职场上获得更多的机会。 在职场中&#xff0c;适时地给予同事、上级和下属赞美、感谢和鼓励&#xff0c;能够拉近彼此的距离&#xff0c;增强团…

cache(五)Write-through,Write-back,Write-allocate,No-write-allocate

这张图总结了缓存系统中写操作策略的不同方法&#xff0c;主要讨论了在**写命中&#xff08;write-hit&#xff09;和写未命中&#xff08;write-miss&#xff09;**情况下应该采取的操作策略。 1. 多个数据副本的存在 缓存系统通常有多个级别&#xff0c;例如 L1 缓存、L2 缓…

商品规格递归拼接

创建实体类 Data public class Shopping {private String name;private List<String> children; } 测试 public static void main(String[] args) {ArrayList<Shopping> shoppings new ArrayList<>();Shopping shopping new Shopping();shopping.setName…

大模型基础: 从零开始训练一个最小化的Transformer聊天机器人

这里将介绍如何从零开始&#xff0c;使用Transformer模型训练一个最小化的聊天机器人。该流程将尽量简化&#xff0c;不依赖预训练模型&#xff0c;并手动实现关键步骤&#xff0c;确保每一步都容易理解。 1. 环境准备 首先&#xff0c;确保安装了必要的Python库。我们只需要基…

推荐一款3D建模软件:Agisoft Metashape Pro

Agisoft Metashape Pro是一款强大的多视点三维建模设计辅助软件&#xff0c;Agisoft Metashape是一款独立的软件产品&#xff0c;可对数字图像进行摄影测量处理&#xff0c;并生成3D空间数据&#xff0c;用于GIS应用&#xff0c;文化遗产文档和视觉效果制作&#xff0c;以及间接…

Docker--Docker是什么和对Docker的了解

Docker 的本质 Docker的本质是LXC&#xff08;Linux容器&#xff09;之类的增强版&#xff0c;它本身不是容器&#xff0c;而是容器的易用工具。 Docker通过虚拟化技术&#xff0c;将代码、依赖项和运行环境打包成一个容器&#xff0c;并利用隔离机制来使得容器之间互相独立、…

前端请求后端php接口跨域 cors问题

只需要后端在网站的入口文件 一般都是 index.php 加上 这几行代码就可以了 具体的参数可以根据需要去修改 header("Access-Control-Allow-Origin: *"); header(Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS); header(Access-Control-Allow-Heade…

Wi-Fi背后的工作原理与技术发展历程介绍【无线通信小百科】

1个视频说清楚WIFI&#xff1a;频段/历程/技术参数/常用模块 智能手机拥有率越来越高的今天&#xff0c;大家已经习惯了通过无线网络上网的方式。除了在外面需要用手机流量&#xff0c;我们通常在家里或者机场&#xff0c;商场都可以通过Wi-Fi连接上网。本期文章将为大家介绍Wi…

HTMLCSS: 日落卡片

效果演示 这段代码创建了一个包含日落图像和文本的美观卡片&#xff0c;使用了现代CSS背景模糊和渐变&#xff0c;以及SVG图形来增强视觉效果。 HTML <div class"card"><div class"card__content"><div class"card-details">…