编译安装httpd2.4.25并编写systemd脚本

  

编译安装httpd2.4.25并编写systemd脚本

  

<强>一、官方的httpd安装脚本

  
 <代码类=" language-bash "> [root@textbox ~] # rpm - q - httpd的脚本
  预设的脚本(使用/bin/sh):
  #添加“apache”组和用户/usr/sbin/groupadd 48 - r - g apache 2比;/dev/null | |:/usr/sbin/useradd - c - u 48 - g Apache \“Apache”
  - s/sbin/nologin - r - d/usr/share/httpd apache 2比;/dev/null | |:
  postinstall小脚本(使用/bin/sh):
  
  如果情商1][1美元;然后
  #初始安装
  systemctl预设httpd。服务htcacheclean。服务在/dev/null 2祝辞,1 | |:
  fi
  preuninstall小脚本(使用/bin/sh):
  
  如果情商0][1美元;然后
  #包删除,不升级
  systemctl——no-reload禁用httpd。服务htcacheclean。服务比;2/dev/null祝辞,1 | |:
  systemctl httpd停止。服务htcacheclean。服务比;2/dev/null祝辞,1 | |:
  fi
  postuninstall小脚本(使用/bin/sh):
  
  systemctl daemon-reload在/dev/null 2祝辞,1 | |:
  
  #从SysV触发转换,每指导方针:
  # https://fedoraproject.org/wiki/Packaging: ScriptletSnippets # Systemd
  posttrans小脚本(使用/bin/sh):
  测试- f/etc/sysconfig/httpd-disable-posttrans | | \/bin/systemctl try-restart httpd。服务htcacheclean。服务在/dev/null 2祝辞,1 | |: 
  

<强>二、httpd的systemd文件

  

参考:http://www.jinbuguo.com/systemd/systemd.kill.html

  

分为3部分:(单位),[服务]和[安装]

  
 <代码类=" language-bash "> (root@textbox系统)#猫httpd.service
  (单位)
  描述=Apache HTTP服务器#描述信息
  后=网络。目标remote-fs。目标nss-lookup。目标#当前单位应当晚于哪些单位启动
  文档=男人:httpd(8) #男人手册
  文档=男人:apachectl(8) #男人手册
  
  (服务)
  类型=通知#单元进程启动类型,通知为在启动完成后会发送一个通知消息。还需要配合NotifyAccess来让Systemd接收消息
  EnvironmentFile=/etc/sysconfig/httpd #环境配置文件
  ExecStart=/usr/sbin/httpd选项-DFOREGROUND #美元指明启动单元要运行命令或脚本的绝对路径
  ExecReload=/usr/sbin/httpd选项- k美元优雅#指明reloadunit要运行的命令或脚本绝对路径
  ExecStop=/bin/杀死绞车$ {MAINPID} #指明停止单位要运行的命令或脚本
  #我们希望systemd给httpd一些时间完成优雅,但仍然想要的
  #后杀死httpd TimeoutStopSec期间如果有什么出错了
  #优雅的停止。通常,Systemd发送SIGTERM信号之后
  # ExecStop,杀死httpd。我们在这里发送无用的SIGCONT
  # httpd时间完成。
  KillSignal=SIGCONT #设置杀死进程的第一步使用什么信号(见上文)SIGCONT是18号信号,表示继续
  PrivateTmp=true #启动服务时会在/tmp目录生成一个类似system-private-xxx的文件,存在临时文件
  
  (安装)
  WantedBy=多用户。目标#:被哪些单位所依赖,弱依赖 
  

<强>三,一键安装脚本

  

参考:https://blog.51cto.com/14012942/2427694

  

<强>四,最终自己写的系统文件

  
 <代码类=" language-bash "> root@textbox ~ #猫/usr/lib/systemd/system/httpd.service
  (单位)
  描述=Apache HTTP服务器
  后=网络。目标remote-fs。目标nss-lookup.target
  
  (服务)
  类型=简单
  EnvironmentFile=/etc/httpd/httpd . conf
  ExecStart=/应用程序/httpd24 apachectl - k/bin/-DFOREGROUND开始
  ExecReload=/应用程序/httpd24 apachectl - k/bin/优雅
  ExecStop=/usr/bin/杀死绞车$ {MAINPID}
  PrivateTmp=true
  
  (安装)
  WantedBy=multi-user.target  
  

<>强效果:

  
 <代码类=" language-bash "> [root@textbox ~] # systemctl httpd开始
  (root@textbox ~) # httpd systemctl状态
  ●httpd。服务——Apache HTTP服务器
  加载:加载(/usr/lib/systemd/系统/httpd.service;禁用;厂商预设:禁用)
  主动:主动(运行)自2019-09-04 21:25:16 CST结婚;1分钟51年代以前
  主要PID: 35575 (apachectl)
  CGroup:/system.slice/httpd.service
  ├─35575/bin/sh/应用程序/httpd24 apachectl - k/bin/-DFOREGROUND开始
  ├─35577/应用程序/httpd24/bin/httpd - k -DFOREGROUND开始
  ├─35593/应用程序/httpd24/bin/httpd - k -DFOREGROUND开始
  ├─35594/应用程序/httpd24/bin/httpd - k -DFOREGROUND开始
  └─35595/应用程序/httpd24/bin/httpd - k -DFOREGROUND开始
  
  9月04 21:25:16文本框systemd[1]:启动Apache HTTP服务器。
  9月04 21:25:31 apachectl[35575]:文本框AH00558: httpd:不能可靠地确定服务器的完全定性…ssage
  提示:有些行ellipsized,使用- l显示。
  (root@textbox ~) # systemctl httpd停止
  (root@textbox ~) # httpd systemctl状态
  ●httpd。服务——Apache HTTP服务器
  加载:加载(/usr/lib/systemd/系统/httpd.service;禁用;厂商预设:禁用)
  活动:活动(死)

编译安装httpd2.4.25并编写systemd脚本