编译安装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脚本