redis-7.4.2 通過 systemd管理,rpmbuild spec文件參考

redis-7 和 redis 5 版本在配置為systemd 方式管理時,配置關于有些許區別,否則會報systemctl status redis 如下錯誤:

redis.service: control process exited, code=exited status=1 Failed to
start Redis persistent key-value database. Unit redis.service entered
failed state.

這類報錯很多沒什么參考意義,可以嘗試通過啟動日志等排查具體問題,

journalctl -xe查看報錯如下:

– Unit redis.service has begun starting up.
May 22 18:11:54 worker1 systemd[1]: Failed to start Redis persistent key-value database.
– Subject: Unit redis.service has failed
– Defined-By: systemd
– Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

– Unit redis.service has failed.

– The result is failed.
May 22 18:11:54 worker1 systemd[1]: Unit redis.service entered failed state.
May 22 18:11:54 worker1 systemd[1]: redis.service failed.
May 22 18:11:54 worker1 polkitd[795]: Unregistered Authentication Agent for unix-process:103583:240646911 (system bus name :1.17442, object path /org/freedesktop/PolicyKit1/A

正確的配置如下:
/usr/lib/systemd/system/redis.service

[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target[Service]
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecStop=/usr/libexec/redis-shutdown
Restart=on-failure
Type=simple  #注意這里為simple即可,舊版本為notify
User=root
Group=root
RuntimeDirectory=redis
RuntimeDirectoryMode=0755[Install]
WantedBy=multi-user.target

配置文件
關鍵信息如下

daemonize no   #配置說明里面雖然說當supervised 為systemd的這里的設置不影響,但實測必須為no,為yes則自動報錯
supervised systemd  #顯示指定管理方式為systemd 

可將redis打包為rpm方便安裝,spec文件如下:
redis-7.4.2.spec

Name:   redis
Version:        7.4.2
Release:        1%{?dist}
Summary:        A persistent key-value databaseGroup:  Applications/Databases
License:        BSD
URL:    http://redis.io
Source0:        %{name}-%{version}.tar.gz
Source1:    redis-7.conf
Source2:    redis-7.service
Source3:    redis-shutdown
BuildRoot:       %{_tmppath}/%{name}-%{version}
BuildRequires:  tcl >= 8.5
ExcludeArch:      ppc64
#Requires:%description
Redis is an advanced key-value store. It is similar to memcached but the data
set is not volatile, and values can be strings, exactly like in memcached, but
also lists, sets, and ordered sets. All this data types can be manipulated with
atomic operations to push/pop elements, add/remove elements, perform server side
union, intersection, difference between sets, and so forth. Redis supports
different kind of sorting abilities.%prep
%setup -q%build
make%install
rm -fr %{buildroot}
make  PREFIX=%{buildroot}/home/software/redis  install
mkdir -p %{buildroot}/home/software/redis/log
install -p -D -m 644 %{SOURCE1} %{buildroot}/home/software/redis/conf/%{name}.conf
install -p -D -m 644 %{SOURCE2} %{buildroot}/usr/lib/systemd/system/redis.service
install -p -D -m 755 %{SOURCE3} %{buildroot}/usr/libexec/redis-shutdown%pre%post
if [ $1 -eq 1 ];then# 第一次安裝時啟用服務ln -s /home/software/redis /usr/local/redisln -s /usr/local/redis/bin/redis-cli /usr/local/bin/redis-cli/bin/systemctl daemon-reload/bin/systemctl enable %{name}.service >/dev/null 2>&1 || :
fi%preun
if [ $1 -eq 0 ]; then/bin/systemctl disable %{name}.service >/dev/null 2>&1 || :/bin/systemctl stop %{name}.service >/dev/null 2>&1 || :
fi%postunrm -f /usr/local/bin/redis-clirm -f /usr/local/redisrm -fr /home/software/redisrm -f /usr/libexec/redis-shutdownrm -f /usr/lib/systemd/system/redis.service%files
/home/software/redis
/usr/lib/systemd/system/redis.service
/usr/libexec/redis-shutdown%clean
rm -fr %{buildroot}%changelog
* Thu May 22 2025 Rockstics <rockstics@163.com> - 7.4.2-1
- Initial package creation for Redis 7.4.2

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82546.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82546.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82546.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025-05-26 什么是“AI 全棧”

AI全棧&#xff1a;模型 表示學習 向量庫 API UI 一句話定義&#xff1a; ? AI 全棧開發&#xff0c;是指開發者從原始文本/語音/圖像開始&#xff0c;結合大模型能力&#xff0c;構建完整應用閉環的技術能力棧。 AI全棧應用的過程 AI應用 ≠ 一個GPT接口&#xff0c;…

康師傅的“價值戰”答卷:一碗面的創新與擔當

低價策略、口味雷同、營銷跟風……方便面行業曾長期陷于同質化競爭的泥潭&#xff0c;不過近年來&#xff0c;行業競爭邏輯已悄然改變。 一方面來源于宏觀環境的變化&#xff0c;想要在縮量市場下保住大盤&#xff0c;一定要保持逆向思維的能力&#xff0c;另一方面&#xff0…

高性能管線式HTTP請求

高性能管線式HTTP請求:原理、實現與實踐 目錄 高性能管線式HTTP請求:原理、實現與實踐 1. HTTP管線化的原理與優勢 1.1 HTTP管線化的基本概念 關鍵特性: 1.2 管線化的優勢 1.3 管線化的挑戰 2. 高性能管線式HTTP請求的實現方案 2.1 技術選型與工具 2.2 Java實現:…

傳輸線上的信號速度與阻抗無關,主要由頻率決定

阻抗與傳播速度無關 通過計算我們可以知道&#xff0c;導體流過電流時&#xff0c;電子實際上的速度只有1cm/s。是很慢的。 導線的電阻對傳輸線上信號的傳播速度幾乎沒有任何影響。只在一些極端的情況下&#xff0c;互連的電阻才會影響信號的傳播速度&#xff0c;并且這個影響…

YOLOv1 詳解:單階段目標檢測算法的里程碑

在目標檢測領域&#xff0c;YOLO&#xff08;You Only Look Once&#xff09;系列算法憑借其高效性和實用性&#xff0c;成為了行業內的明星算法。其中&#xff0c;YOLOv1 作為 YOLO 系列的開山之作&#xff0c;首次提出了單階段目標檢測的思想&#xff0c;徹底改變了目標檢測算…

免費開源 PDF 閱讀器 自帶虛擬打印機功能 多格式兼容

各位辦公小能手們&#xff0c;今天咱來聊聊一款超厲害的PDF工具——PDFLite&#xff01; 這PDFLite啊&#xff0c;那可是輕量級、免費又開源的好東西。它能干啥呢&#xff1f;主要就是能讀PDF文件&#xff0c;還能轉換文件格式&#xff0c;做基礎的文檔管理。下面咱就說說它的…

Mac Python 安裝依賴出錯 error: externally-managed-environment

Mac Python 使用 ip3 install -r requirements.txt 出錯 This environment is externally managed ╰─> To install Python packages system-wide, try brew installxyz, where xyz is the package you are trying toinstall.If you wish to install a Python library th…

Windows11+WSL2+Ubuntu22 安裝

1.首先要獲得管理員權限 2.直接在電腦搜索欄搜索 “Turn Windows features on or off”, 勾選下面兩個條目&#xff1a; Virtual Machine Platform 和 Windows Subsystem for Linux 3.重啟電腦 4.電腦搜索欄搜索“Windows PowerShell”&#xff0c;運行下面命令設置WSL2為默…

解決 iTerm2 中 nvm 不生效的問題(Mac 環境)

解決 iTerm2 中 nvm 不生效的問題&#xff08;Mac 環境&#xff09; 標題 《為什么 iTerm2 無法使用 nvm&#xff1f;—— 解決 Mac 終端環境變量沖突指南》 問題描述 許多開發者在 Mac 上使用 nvm 管理 Node.js 版本時&#xff0c;發現&#xff1a; 原生終端&#xff1a;n…

React的單向數據綁定

文章目錄 單項數據綁定通過onChange方法&#xff0c;實現雙向數據綁定 單項數據綁定 在 Vue 中&#xff0c;可以通過 v-model 指令來實現雙向數據綁定。但是&#xff0c;在 React 中并沒有指令的概念&#xff0c;而且 React 默認不支持 雙向數據綁定。 React 只支持&#xff…

AWS関連職種向け:日本語面接QA集

1. 自己紹介&#xff08;じこしょうかい&#xff09; Q&#xff1a;簡単に自己紹介をお願いします。 A&#xff1a; はい、〇〇と申します。これまで約4年間、主にAWSを基盤としたインフラ設計?構築?運用に従事してまいりました。VPCやEC2、RDS、S3などの基本サービスの設計…

AlphaCore GPU 物理仿真引擎內測邀請

AlphaCore 是 MooreThreads 研發的下一代 GPU 物理仿真引擎&#xff0c;為影視特效&#xff0c;游戲交互&#xff0c;數字孿生等領域&#xff0c;提供超高精度的仿真模擬。 申請試用? 目前我們的Catalyst FX 還處于內部申請測試階段&#xff0c;請發送郵件至 alphacoremthre…

鴻蒙OSUniApp 實現的日期選擇器與時間選擇器組件#三方框架 #Uniapp

UniApp 實現的日期選擇器與時間選擇器組件 在移動應用開發中&#xff0c;日期選擇器和時間選擇器是表單、預約、日程、打卡等場景中不可或缺的基礎組件。一個好用的日期/時間選擇器不僅能提升用戶體驗&#xff0c;還能有效減少輸入錯誤。隨著 HarmonyOS&#xff08;鴻蒙&#…

嵌入式開發STM32 -- 江協科技筆記

1.背景介紹及基礎認知 8大輸入輸出 斯密特觸發器&#xff1a;高于設定閾值輸出高電平&#xff0c;低于設定閾值輸出低電平 有關上拉輸入、下拉輸入、推挽輸出、開漏輸出、復用開漏輸出、復用推挽輸出以及浮空輸入、模擬輸入的區別 1、上拉輸入&#xff1a;上拉就是把電位拉高…

RISC-V 開發板 MUSE Pi Pro RTSP 串流 CSI ov5647 攝像頭

視頻鏈接&#xff1a;RISC-V 開發板 MUSE Pi Pro RTSP 串流 CSI ov5647 攝像頭_嗶哩嗶哩_bilibili RISC-V 開發板 MUSE Pi Pro RTSP 串流 CSI ov5647 攝像頭 RTSP&#xff08;Real-Time Streaming Protocol&#xff0c;實時流傳輸協議&#xff09; 是一種基于文本的應用層協議&…

Python面試1

1. 解釋型語言和編譯型語言的區別 編譯型語言&#xff1a; 將程序編譯成二進制可執行程序&#xff08;C、C) 解釋型語言&#xff1a; 將程序逐行解釋運行&#xff08;python&#xff09; Java不是將源程序直接編譯機器語言&#xff0c;而是編譯成字節碼文件&#xff0c;然后用…

輸入一串字符,統計其中字母的個數

#include <stdio.h> int main() { char ch; int count 0; printf("請輸入一串字符&#xff1a;\n"); while ((ch getchar())! \n) { if ((ch > a && ch < z) || (ch > A && ch < Z)) { count; } } printf("字母的個數為&a…

git基礎語法回顧

1. 初始化與克隆 git init 初始化一個新的本地倉庫。git clone <repo-url> 克隆遠程倉庫到本地&#xff08;如 git clone https://github.com/user/repo.git&#xff09;。 2. 基礎操作 git add <file> 將文件添加到暫存區&#xff08;如 git add main.py&#x…

華為倉頡語言初識:結構體struct和類class的異同

前言 華為倉頡語言是鴻蒙原生應用的一種新的編程語言&#xff0c;采用面向對象的編程思想&#xff0c;為開發者帶來新的開發體驗。不僅可以和 ArkTs 相互調用&#xff0c;更能提升應用程序的性能&#xff0c;更重要的是倉頡語言的特點結合了 java 和 C 的特點。對開發者來說比…

電池預測 | 第28講 基于CNN-GRU的鋰電池剩余壽命預測

電池預測 | 第28講 基于CNN-GRU的鋰電池剩余壽命預測 目錄 電池預測 | 第28講 基于CNN-GRU的鋰電池剩余壽命預測預測效果基本描述程序設計參考資料 預測效果 基本描述 電池預測 | 第28講 基于CNN-GRU的鋰電池剩余壽命預測 運行環境Matlab2023b及以上&#xff0c;鋰電池剩余壽…