httpd启动脚本
A. linux启动httpd命令
Linux httpd命令是Apache HTTP服务器程序。httpd为Apache HTTP服务器程序。直接执行程序可启动服务器的服务。
1、apahce启动命令:推荐/usr/local/apache2/bin/apachectl start apaceh启动
2、apache停止命令:/usr/local/apache2/bin/apachectlstop 停止
3、apache重新启动命令:/usr/local/apache2/bin/apachectl restart 重启要在重启 Apache 服务器时不中断当前的连接,则应运行:/usr/local/sbin/apachectl graceful
如果apache安装成为linux的服务的话,可以用以下命令操作:service httpd start 启动service httpd restart 重新启动service httpd stop 停止服务
4.httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
通常,httpd不应该被直接调用,而应该在类Unix系统中由 apachectl 调用,在Windows NT/2000/XP/2003中作为服务运行和在Windows 95/98/ME中作为控制台程序运行。
(1)httpd启动脚本扩展阅读
linux与windows对比
1、 编程篇
虽然五年已经过去了,但是系统编程的模式基本没有什么改变,由于GPL的存在linux在编程效率上比windows要高不少,这是因为GPL公开程序代码,这样可以减少重复开发,所以linux在编程模式上比windows要略微强点。
但是须知windows还是常用软件的主要载体,所以windows下的软件还是要移植到windows下的,当然有很多软件还是一直就在windows下开发的,所以这点windows并不比linux弱的太多。
值得一提的是windows8种引入的windows store,这样的应用不知道可不可以在linux下开发,貌似目前windows8 app都是在windows8下开发的。
2、运行平台篇
linux系统可以运行在几乎所有的硬件结构上,无论是intel、amd、arm处理器都可以,甚至我国的龙芯上跑的也是linux。而windows在更新到windows8后也实现了支持intel、amd和arm三大处理器架构。
但是相对而言,windows8 RT只能运行在特定的架构上并且不发售零售版,所以可以暂时不考虑。即linux比windows支持的处理器平台多。
linux下处理器性能能否达到windows的标准还很难说,因为电源管理等诸多问题,linux并不一定能发挥硬件的全部效率。这点在显卡上体现的特别明显。
AMD的显卡开源驱动只能实现显卡一半的性能,所以在运行平台上,linux兼容的更多,但是windows更完美,相对而言,只考虑运行平台的话(能用)linux略占优势。
3、 硬件支持篇
linux的硬件支持除了显卡外我感觉还是和windows保持同步的,比如usb3.0,HDMI等但在显卡方面,尤其是双显卡方面linux就和windows差距明显了,linux目前还没有可靠的双显卡交火或者双显卡交互手段,所以就凭这一点linux在硬件支持方面占极大劣势,
因为没有双显卡支持会导致双显卡一直通电,能耗直线上升! 虽然linux的新内核早已解决了这个问题,但是linux下显卡驱动的不足也导致这方面问题没有根本解决。
4、网络篇
个人感觉除了google的chorme os外linux的网络已经发展的登峰造极了,linux对网络的利用率是非常高的,毕竟GPL的基本交流手段就是网络,所以网络功能上linux很给力的,至于ipv6什么的windows和linux早就一样哈皮了。
不过有一点就是flash player上的问题制约了linux网络媒体的应用,因为flash player在linux占用的资源过高,导致性能下降……
5、 设备驱动篇
这个linux基本上什么设备都能认出来,但是能驱动的设备显然没有windows多,毕竟除了arm处理器外基本上每个硬件都会为windows写驱动,但是能为linux写驱动的就不多了,很多linux驱动是用开源驱动的,这样的话效率……
所以个人感觉windows的驱动比linux下强。
6、 UNIX能力篇
这个,我不太同意原作者设立这个指标的,毕竟linux是unix like系统,而windows和这个不沾边……所以UNIX能力肯定是linux强啊,但是不是还有原版的unix么,所以这点应该列入评价指标。
7、性能篇
这个是很重要的一点,原作者分为开放性、多用户和多任务三个方面来进行的对比。开放性其实linux和windows都一样的,都很开放,不过windows8相比前辈们有点保守,所以linux的开放性应该更好点。
多用户方面,linux和windows都支持多个用户,但是linux可以多用户同时登陆,不过考虑到个人电脑的情况,这个指标一般没有什么用。所任务,这点有很多测评,大家可以去网络或者google一下,一般大家都认为linux效率更高一点。
8、创新篇
我实际上很反对这种为了创新而创新的对比方式的。windows和linux都是操作系统,为了实现类似的功能,出现多多少少一些类似是正常的。
就开发状态而言,linux是开源的,而windows不开源,所以linux应该高点,但是不要忘了windows系统也能得到全世界的很多第三方软件的支持,所以创新性而言双方并没有可比性,因该是在同一水平。
9、病毒防护篇
这一点毫无疑问是linux获胜,目前世界上还没有一种可以在linux下大规模泛滥的病毒,而且linux的安全性完全是建立在其保守的内核设计上的,所以linux是很安全的。相对于windows虽然windows8在win7的基础上又提高了很多,但是与linux还是有差距的。
实际上,为了保证用户体验,很多时候windows是必须牺牲防护性能的,所以能做到这点已经非常不容易了,真要超级安全的还FreeBSD是不是更安全呢?
10、稳定篇
系统稳定性上我感觉linux与windows不相上下,因为windows与linux都会崩溃,虽然windows崩溃原因很多,而linux崩溃大部分是有误操作,但是二者的差距真心没有那么大,而且windows实际上出现蓝屏代码什么的故障次数也已经比以前少多了。
B. linux开机后apache不能自动启动
开机启动的话可以配置/etc/rc.local文件,把启动apache服务的命令写到rc.local里,
比如echo
"/etc/init.d/httpd
start"
>>
/etc/rc.local
也可以把在对应的运行级别里创建apache服务启动脚本的链接。
C. apache服务器启动脚本apachectl无法完成
apache启动失败
1.
端口占用问题 这个问题比较常见,解决起来也很容易。通常是因为IE或安装的其它程序占用了80端口而导致Apache启动失败,在启动Apache之前将端口号修改为其它未占用的端口就可以了。 解决方法:我们的apache软件配置是在httpd.conf文件中配置,该文件在apache安装目录下conf 在httpd.conf文件中我们修改端口: Listen 81 注意修改完毕后,一定要重新启动apache。
2.
路径及文件名问题 解决了端口问题,还是启动失败,这是为什么呢?我们需要注意一个小细节,查看一下我们安装APMServ的路径,要确定安装路径的文件夹名称中不能出现中文或空格。毕竟这是个人作品,有些地方考虑的不是很周到,导致一些Bug。
3.
配置文件问题。
D. linux开机启动会依次加载哪些脚本
1、相关基础知识点x0dx0a 1)redhat的启动方式和执行次序是: x0dx0a加载内核 x0dx0a执行init程序 x0dx0a /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 x0dx0a /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 x0dx0a /etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)x0dx0a /sbin/mingetty # 等待用户登录 x0dx0ax0dx0a在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: x0dx0a调入keymap以及系统字体 x0dx0a启动swapping x0dx0a设置主机名 x0dx0a设置NIS域名 x0dx0a检查(fsck)并mount文件系统 x0dx0a打开quota x0dx0a装载声卡模块 x0dx0a设置系统时钟 x0dx0ax0dx0a等等。 x0dx0a /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。 x0dx0ax0dx0a值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。 x0dx0a init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的 x0dx0a action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。 x0dx0ax0dx0a至此,LINUX的启动结束。x0dx0a 2、init运行级别及指令x0dx0ax0dx0a一、什么是INIT: x0dx0ainit是Linux系统操作中不可缺少的程序之一。 x0dx0a所谓的init进程,它是一个由内核启动的用户级进程。 x0dx0a内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 x0dx0a内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。x0dx0a二、运行级别 x0dx0a那么,到底什么是运行级呢? x0dx0a简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。 x0dx0a不同的运行级定义如下 x0dx0a# 0 - 停机(千万不能把initdefault 设置为0 ) x0dx0a# 1 - 单用户模式 # s init s = init 1x0dx0a# 2 - 多用户,没有 NFS x0dx0a# 3 - 完全多用户模式(标准的运行级) x0dx0a# 4 - 没有用到 x0dx0a# 5 - X11 多用户图形模式(xwindow) x0dx0a# 6 - 重新启动 (千万不要把initdefault 设置为6 ) x0dx0a这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6) x0dx0a 3):chkconfig 命令(redhat 操作系统下)x0dx0ax0dx0a不像DOS 或者 Windows,Linux 可以有多种运行级。常见的就是多用户的2,3,4,5 ,很多人知道 5 是运行 X-Windows 的级别,而 0 就x0dx0a是关机了。运行级的改变可以通过 init 命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用 init 1 来切换。在 Linux 的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K 和 S 开头的文件,按后面的数字顺序,执行这x0dx0a些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux 提供了chkconfig 命令用来更新和查询不同运行级上的系统服务。 x0dx0ax0dx0a语法为: x0dx0a chkconfig --list [name] x0dx0a chkconfig --add name x0dx0a chkconfig --del name x0dx0a chkconfig [--level levels] name x0dx0a chkconfig [--level levels] name x0dx0a chkconfig 有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。 x0dx0a chkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回 true,否则返回false。 --level 选项可以指定要查看的运行级而不一定是当前运行级。 x0dx0ax0dx0a如果在服务名后面指定了on,off 或者 reset,那么 chkconfig 会改变指定服务的启动信息。on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息,无论有问题的初始化脚本指定了什么。 x0dx0ax0dx0a对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset 可以对所有运行级有效。指定 --level 选项时,可以选择特定的运行级。 x0dx0a x0dx0a需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init 不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。 x0dx0ax0dx0a选项介绍: x0dx0a --level levels x0dx0ax0dx0a指定运行级,由数字 0 到 7 构成的字符串,如: x0dx0a --level 35 表示指定运行级3 和5。 x0dx0ax0dx0a要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:chkconfig --level 345 nfs off x0dx0a --add name x0dx0ax0dx0a这个选项增加一项新的服务,chkconfig 确保每个运行级有一项启动(S) 或者 杀死(K) 入口。如有缺少,则会从缺省的init 脚本自动x0dx0a建立。 x0dx0a --del name x0dx0ax0dx0a用来删除服务,并把相关符号连接从 /etc/rc[0-6].d 删除。 x0dx0a --list name x0dx0ax0dx0a列表,如果指定了name 那么只是显示指定的服务名,否则,列出全部服务在不同运行级的状态。 x0dx0ax0dx0a运行级文件 x0dx0ax0dx0a每个被chkconfig 管理的服务需要在对应的init.d 下的脚本加上两行或者更多行的注释。 x0dx0ax0dx0a第一行告诉 chkconfig 缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。 x0dx0ax0dx0a第二行对服务进行描述,可以用 跨行注释。 x0dx0ax0dx0a例如,random.init 包含三行: x0dx0a # chkconfig: 2345 20 80 x0dx0a # description: Saves and restores system entropy pool for x0dx0a # higher quality random number generation. x0dx0ax0dx0a表明 random 脚本应该在运行级 2, 3, 4, 5 启动,启动优先权为20,停止优先权为 80。 x0dx0ax0dx0a好了,介绍就到这里了,去看看自己目录下的/etc/rc.d/init.d 下的脚本吧。 x0dx0ax0dx0a设置自启动服务:chkconfig --level 345 nfs on x0dx0a2. 实例介绍:x0dx0a 1、在linux下安装了apache 服务(通过下载二进制文件经济编译安装、而非rpm包)、apache 服务启动命令: /server/apache/bin/apachectl start 。让apache服务运行在运行级别3下面。x0dx0a命令如下: x0dx0a 1)touch /etc/rc.d/init.d/apachex0dx0a vi /etc/rc.d/init.d/apachex0dx0a chown -R root /etc/rc.d/init.d/apachex0dx0a chmod 700 /etc/rc.d/init.d/apachex0dx0a ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S60apache #S 是start的简写、代表启动、K是kill的简写、代表关闭。60数字x0dx0a代表启动的顺序。(对于iptv系统而言、许多服务都是建立在数据库启动的前提下才能够正常启动的、可以通过该数字就行调整脚本的启动顺序)) x0dx0a apache的内容:x0dx0a #!/bin/bashx0dx0a #Start httpd servicex0dx0a /server/apache/bin/apachectl startx0dx0ax0dx0a至此 apache服务就可以在运行级别3下 随机自动启动了。(可以结合chkconfig 对启动服务进行相应的调整)。x0dx0a由于相关变量定义不同, 所以以下启动顺序仅供参考x0dx0a在Redhat Redflag centos fc linux系统里面脚本的启动x0dx0a先后:x0dx0a第一步:通过/boot/vm进行启动 vmlinuzx0dx0a第二步:init /etc/inittabx0dx0a第三步:启动相应的脚本,并且打开终端x0dx0arc.sysinitx0dx0arc.d(里面的脚本)x0dx0arc.localx0dx0a第四步:启动login登录界面 loginx0dx0a第五步:在用户登录的时候执行sh脚本的顺序:每次登录的时候都会完全执行的x0dx0a/etc/profile.d/filex0dx0a/etc/profilex0dx0a/etc/bashrcx0dx0a/root/.bashrcx0dx0a/root/.bash_profilex0dx0a编者注:x0dx0aNtsysv命令也可以实现根据不同运行级别启动不同的服务,但是一定要注意,使用ntsysv命令,默认采用图形的方式管理服务的启动,但是在这种情况下设置的服务,只对当前的运行级别有效果!因此,建议最好还是使用 chkconfig 来进行服务的管理。
E. 重新启动linux中的httpd服务
不同的Linux发行版,对于系统服务管理的方法不同。目前主要有两种:
1 System V init script 相关的命令有service,chkconfig与init.d脚本;
2 Systemd
拿RHEL或CentOS来说,版本7以前的发行版本使用Sys V,而从7以后则改用Systemd。
两种方法重启httpd服务的方法如下:
1 System V
#servicehttpdrestart
2 Systemd
#systemctlrestarthttpd