关于Linux查看系统及版本信息的命令lsb_release命令以及Centos7中将redis服务写入systemctl服务

一、关于Linux查看系统及版本信息的命令lsb_release命令

    linux查看系统是centos还是ubuntu,之前一直使用uname -a以及cat /etc/issue。但在某个服务器上发些这些都不行。有一个更好用的命令:lsb_release -a。如执行时提示-bash: lsb_release: 未找到命令,使用命令安装:yum install -y redhat-lsb。

    LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。一般使用-a选项展示所有选项信息即可。其它选项参数可以忽略。如果当前发行版是LSB兼容的,那么/etc/lsb-release(注意这里是中划线)文件中会包含LSB_VERSION域。这个域的值可以是用冒号隔开的一系列支持的模块。这些模块名是当前版本支持的LSB的模块名。如果当前版本不是LSB兼容的,就不包含这个域。

#CENTOS中
[root@node1484 tools]# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID:    CentOS
Description:    CentOS Linux release 7.2.1511 (Core) 
Release:    7.2.1511
Codename:    Core
#UBUNTU中
[root@node1484 tools]# lsb_release -a
LSB Version:    core-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

    lsb_release -a命令查看其执行文件发现其就是查找了/etc下面的很多配置信息,这个没有找那个,综合一些常见的系统最后取出版本信息。比如发现在centos中存在/etc/lsb-release.d/这个目录,但是不存在 /etc/lsb-release这个文件,而是存在/etc/centos-release文件,里面即是系统信息。不存在还会查看/etc/debian_version文件。

    可见lsb_release -a命令就是将各系统中存放系统版本信息的文件名综合起来,串行判断,对用户而言,可以避免去猜测这个配置的文件名称是什么。

二、Centos7中将redis服务写入systemctl服务

    CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,比起原来的service和config两套命令,systemd整合了service和config的功能。Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。先安装一下redis,我这里是redis-6.2.3版本,不多说命令如下:

# 下载安装redis.
$ cd /usr/local/redis
$ wget https://download.redis.io/releases/redis-6.2.3.tar.gz
$ tar xzf redis-6.2.3.tar.gz
$ cd redis-6.2.3
$ make# 安装完成之后添加快捷方式进/usr/bin中以方便后期使用redis-cli。
$ cd /usr/local/redis
$ mkdir etc
$ cp redis-6.2.3/redis.conf etc/
$ ln -s /usr/local/redis/redis-6.2.3/src/redis-server /usr/bin/redis-server
$ ln -s /usr/local/redis/redis-6.2.3/src/redis-cli /usr/bin/redis-cli

    这时redis就可以通过 redis-server /usr/local/redis/etc/redis.conf启动了。然后我们开始将其写入systemd中。进入/usr/lib/systemd/system/目录中,创建redis.service文件,.service文件定义一个服务,分为[Unit],[Service],[Install]三个部分,需要更改的就基本只有ExecStart这一行,即是你本机的redis启动命令。另外PIDFile保持和redis配置文件中一样。

$ cd /usr/lib/systemd/system/
$ vim redis.service
[Unit]
Description=Redis #描述内容
#在哪些服务启动之后启动
After=syslog.target network.target remote-fs.target nss-lookup.target[Service]
Type=forking
#PIDFile和redis.conf配置中一致
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/redis-6.2.3/src/redis-server /usr/local/redis/etc/redis.conf
#重新加载和停止服务的命令
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true#系统以默认多用户方式启动时,此服务自动运行。
[Install]
#Alias:服务别名
WantedBy=multi-user.target

    保存好之后开始操作systemctl,首先要执行 systemctl daemon-reload 命令,重载systemd配置以引入redis.service。然后使用命令将redis.service加进开机启动:systemctl enable redis.service。完成之后我们就可以启动redis服务。systemctl start redis.service。

    发现redis.service启动启来了,但碰到一个问题,systemctl start redis.service执行之后就阻塞在那里,后台服务配置相关肯定有问题。在redis的配置文件中可以看到有两项配置daemonize和supervised,配置文件中说,如果以systemd启动daemonize配置将不会有什么影响(但我测试发现并不是这样)。应该同时修改daemonize yes和修改supervised配置。建议使用auto或者systemd。这两项配置修改掉任何一项发现systemctl start redis.service都会被阻塞运行:

# When Redis is supervised by upstart or systemd, this parameter has no impact.
daemonize yes
#If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#supervised auto    - detect upstart or systemd method based on UPSTART_JOB or NOTIFY_SOCKET environment variables
supervised auto

systemctl其它命令:

查看服务是否设置开机启动: systemctl is-enabled redis.service
查看服务是否启动: systemctl is-active redis.service
禁止服务开机启动: systemctl disable redis.service
列出已经启动的unit: systemctl list-units (也可直接:systemctl) 

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

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

相关文章

Vscode+Pycharm+Vue.js+WEUI+django火锅(三)理解Vue

新创建的Vue项目里面很多文件,对于新手,老老实实做一下了解。 1.框架逻辑 框架的逻辑都是相通的,花点时间理一下就清晰了。 2.文件目录及文件 创建好的vue项目下,主要的文件和文件夹要先认识一下,并与框架逻辑对应起…

云原生化 - 监控(简约版)

要在程序中暴露指标,并符合 Prometheus 和 Kubernetes 的规范,可以按照以下步骤进行: 1. 选择合适的库 根据你的编程语言选择适合的 Prometheus 客户端库。例如: Go: github.com/prometheus/client_golangJava: io.prometheus:…

计算机毕业设计 校内跑腿业务系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

dayu_widgets-简介

前言: 越来越多的人开始使用python来做GUI程序,市面上却很少有好的UI控件。即使有也是走的商业收费协议,不敢使用,一个不小心就收到法律传票。 一、原始开源项目: 偶然在GitHub上发现了这个博主的开源项目。https://github.com/phenom-films…

YOLO11改进|SPPF篇|引入YOLOv9提出的SPPELAN模块

目录 一、【SPPELAN】模块1.1【SPPELAN】模块介绍1.2【SPPELAN】核心代码 二、添加【SPPELAN】模块2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【SPPELAN】模块 1.1【SPPELAN】模块介绍 下图是【SPPELAN】的结构图,让我们…

OOOPS:零样本实现360度开放全景分割,已开源 | ECCV‘24

全景图像捕捉360的视场(FoV),包含了对场景理解至关重要的全向空间信息。然而,获取足够的训练用密集标注全景图不仅成本高昂,而且在封闭词汇设置下训练模型时也受到应用限制。为了解决这个问题,论文定义了一…

软件测试面试题大全

什么是软件测试? 答案:软件测试是一系列活动,旨在评估软件产品的质量,并验证它是否满足规定的需求。它包括执行程序或系统以识别任何缺陷、问题或错误,并确保软件产品符合用户期望。 软件测试的目的是什么&#xff1f…

环球资源网 海外 globalsource reese84 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

Graph知识图谱融入向量数据库,带来RAG效果飞升

01. 前言 随着大型语言模型(LLMs)在各种应用中的广泛使用,如何提升其回答的准确性和相关性成为一个关键问题。检索增强生成(RAG)技术通过整合外部知识库,为LLMs提供了额外的背景信息,有效地改…

使用激光跟踪仪提升码垛机器人精度

标题1.背景 码垛机器人是一种用于工业自动化的机器人,专门设计用来将物品按照一定的顺序和结构堆叠起来,通常用于仓库、物流中心和生产线上,它们可以自动执行重复的、高强度的搬运和堆垛任务。 图1 码垛机器人 传统调整码垛机器人的方法&a…

【重学 MySQL】四十六、创建表的方式

【重学 MySQL】四十六、创建表的方式 使用CREATE TABLE语句创建表使用CREATE TABLE LIKE语句创建表使用CREATE TABLE AS SELECT语句创建表使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据(与CREATE TABLE AS SELECT类似)使用CREATE TEMPORARY …

maven指定模块快速打包idea插件Quick Maven Package

问题背景描述 在实际开发项目中,我们的maven项目结构可能不是单一maven项目结构,项目一般会用parent方式将各个项目进行规范; 随着组件的数量增加,就会引入一个问题:我们只想打包某一个修改后的组件A时就变得很不方便…

企业数据安全防泄密要怎么做?七个措施杜绝泄密风险!

随着信息技术的快速发展,企业的核心数据已成为最具价值的资产之一。然而,数据泄露事件频发,不仅会给企业造成严重的经济损失,还会影响企业的声誉。因此,如何防止企业数据泄密已成为每个企业管理者关注的重点。以下是七…

利用特征点采样一致性改进icp算法点云配准方法

1、index、vector 2、kdtree和kdtreeflann 3、if kdtree.radiusSearch(。。。) > 0)

js拼接html代码在线工具

具体请前往:在线Html转Js--将Html代码转成javascript动态拼接代码并保持原有格式

年薪30W的Java程序员都要求熟悉JVM与性能调优!

一、JVM 内存区域划分 1.程序计数器(线程私有) 程序计数器(Program Counter Register),也有称作为 PC 寄存器。保存的是程序当前执行的指令的地址(也可以说保存下一条指令的所在存储单元的地址&#xff0…

缓存常用的三种读写策略

在现代软件系统中,缓存的使用至关重要,它可以极大地提高系统的性能和响应速度。本文将详细介绍缓存常用的三种读写策略:Cache Aside Pattern(旁路缓存模式)、Read/Write Through Pattern(读写穿透&#xff…

MySQL 锁 简介

要全面解释 MySQL 的锁机制,我们需要从底层原理和源代码的层面展开,讨论 MySQL 锁的分类、实现、如何应用于并发控制、事务隔离级别等。以下是详细的内容: 1. 锁的作用与基本概念 在数据库管理系统(DBMS)中&#xff0…

在线教育的未来:SpringBoot技术实现

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理微服务在线教育系统的相关信息成为必然。开…

springboot酒店客房管理系统-计算机毕业设计源码43070

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1系统开发流程 2.2.2 用户登录流程 2.2.3 系统操作流程 2.2.4 添加信息流程 2.2.5 修改信息流程 2.2.6 删除信息流程 2.3 系统功能…