spec文件中这几个宏是systemd提供的一些方便使用的宏:

%post
%systemd_post xxxxxxxx.service       //安装后触发%preun
%systemd_preun xxxxxxxx.service      //卸载前触发%postun
%systemd_postun_with_restart xxxxxxxx.service      //如果升级需要重启
%systemd_postun    xxxxxxxx.service      //如果升级不需要重启

宏具体细节:

#按照预设文件(*.preset)的指示,重置指定单元的启用(enable)/停用(disable)状态。%systemd_post() \if [ $1 -eq 1 ] ; then \# Initial installation \systemctl preset %{?*} >/dev/null 2>&1 || : \  #其效果等价于按照预设规则,对列出的单元依次使用 disable 或 enable 命令                               fi \%{nil}
-------------------------------------------
%systemd_preun() \if [ $1 -eq 0 ] ; then \# Package removal, not upgrade \systemctl --no-reload disable %{?*} > /dev/null 2>&1 || : \  #执行disable即不开机自启动,并且不自动加载配置(.service文件),也就是不自动执行daemon-load命令。systemctl stop %{?*} > /dev/null 2>&1 || : \                  fi \%{nil}
------------------------------------------
#重新加载 systemd 守护进程的配置。
%systemd_postun() \systemctl daemon-reload >/dev/null 2>&1 || : \   #重新加载所有单元文件,即.service文件             %{nil}
------------------------------------------
#重新启动(先停止再启动)指定的已启动单元。 %systemd_postun_with_restart() \systemctl daemon-reload >/dev/null 2>&1 || : \ if [ $1 -ge 1 ] ; then \# Package upgrade, not uninstall \systemctl try-restart %{?*} >/dev/null 2>&1 || : \   #注意,若指定的单元尚未启动,则不做任何操作。             fi \%{nil}

Systemd Spec 宏相关推荐

  1. RPM中SPEC宏定义对应路径

    # rpm --showrc //查看实现代码. # rpm --eval "%{_libdir}" //查看具体对应路径. /usr/lib/usr/lib/rpm/macros ...

  2. linux编译时开启宏,【spec】Linux上编译安装的spec文件中的常用路径以及宏变量

    我们在Linux上利用 rpmbuild 构建 rpm 安装包时,通过命令rpm --showrc 查看实现代码,另外直接通过 rpm --eval "%{macro}"来查看具体 ...

  3. 2018.8.9日,预习笔记,Linux软件包安装和卸载

    安装软件包的三种方法 rpm包介绍 rpm工具用法 yum工具用法 yum搭建本地仓库 yum更好本地源 yum下载rpm包 源码包安装 yum保留已经安装过的包 搭建局域网yum源 把源码包打包成r ...

  4. 【rpm】源码包制作rpm包|修改rpm、重新制作rpm包

    目录 前言 安装rpmbuild rpmbuild制作rpm 包 同时生成devel包 修改rpm.重新制作rpm包 RPM 打包 工具 SPEC文件 spec文件关键字说明大全 rpmbuild的目 ...

  5. RPM打包探索(rpm-max翻译整理)

    1. %global 和 %define 的区别? 这是内置宏,%define用来定义宏,%global用来定义一个全局可见的宏(在整个spec文件中可见) 2. %{!?macro-name} 和 ...

  6. 宏基d260linux系统,Devuan GNU+Linux 2.0.0 稳定版发布,无systemd自由版本

    评价该项目"Veteran UNIX Admins"已经宣布发布Devuan GNU+Linux 2.0.0,这是该项目的一个新稳定版本,该版本在2014年底派生出Debian,以 ...

  7. RPM包制作之Spec文件详解

    看这篇文章的人基本都有一个想法,就是:"劳资不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包 ...

  8. linux rqm包制作 spec文件详解

    看这篇文章的人基本都有一个想法,就是:"不想用YUM的安装!不是版本太低就是文件分布太野路子",此时我们需要自己订制软件包的需求,我们会把一些源码包按照我们的需求来做成rpm包,其 ...

  9. 6a标准 api_【阀门标准】API SPEC 6A CHINESE-2010中文版.pdf

    [阀门标准]API SPEC 6A CHINESE-2010中文版 井口装置和采油树设备规范 上游段 ANSI/API Spec 6A 第 20 版,2010 年 10 月 2011 年 4 月 1 ...

  10. RPM安装包-Spec文件參数具体解释与演示样例分析

    spec文件是整个RPM包建立过程的中心,它的作用就如同编译程序时的Makefile文件. 1.Spec文件參数 spec文件包括建立一个RPM包必需的信息,包括哪些文件是包的一部分以及它们安装在哪个 ...

最新文章

  1. 计算机ROM的数据可以写入吗,计算机ROM存贮器中的内容只能读出,不能写入。()
  2. 三、Go语言控制语句
  3. 深度linux怎么备份系统下载,在Deepin 20下安装和配置timeshift并用它自动备份系统...
  4. JEECG 智能开发平台二次开发帮助文档
  5. C#LeetCode刷题之#404-左叶子之和​​​​​​​​​​​​​​(Sum of Left Leaves)
  6. 推荐系统知识梳理——矩阵分解
  7. java web购物车_java web开发——购物车功能实现
  8. vue element ui下拉菜单和不是table列表全选功能问题解决方案
  9. WebService只能在本地使用,无法通过网络访问的解决办法
  10. css中调整高度充满_css - DIV高度怎样充满容器?
  11. STM32——库函数版——矩阵按键程序
  12. 忘了NOD32密码的解决方法
  13. 仿城通网盘分享下载系统源码下载,强大功能完美商用
  14. operands could not be broadcast together with shapes解决方案
  15. 百度地图高德地图谷歌地图腾讯地图商家数据采集
  16. 李兴平,世界站长第一人
  17. 物理工程建模和AI量化建模的时空跳跃
  18. 英语发音规则---s发/s/的读音规则
  19. python通过ip获取mac地址_Python3根据IP地址获取MAC地址
  20. jenkins 运行 jenkins-agent.jnlp 报错None of the protocols are enabled

热门文章

  1. 《面膜行业网络关注度分析报告》
  2. ctfshow F5杯 部分WP(writeup) 超详细
  3. 18-基于STM32的室内可见光通信系统设计
  4. 【第二届集成电路EDA备赛】一、Icarus Verilog(iverilog)快速上手使用(基于windows)
  5. python怎么发送post_python发送post的方法
  6. 百果园app系统开发b2c模式详解
  7. 微信公众号商城前景分析
  8. 关于连接同一wifi,手机可以上网,电脑无法上网问题
  9. DEFLATE 压缩算法
  10. Photoshop 7.0使用教程