将Apache加入到linux系统service - 乌合之众 - 博客园 https://www.cnblogs.com/oloroso/p/4595142.html
将apache加入到linux系统服务,用service命令来控制apache的启动和停止。
本文由乌合之众瞎写http://www.cnblogs.com/oloroso
1.生成Apache服务控制脚本#
1.1提取/usr/local/apache2/bin/apachectl脚本有效内容#
grep -v "#"
表示提取不是以#开头的hang
o@o-pc:~/work$ grep -v "#" /usr/local/apache2/bin/apachectl >apache.txt
1.2在/etc/init.d
目录下创建控制脚本#
Copy Highlighter-hljs
o@o-pc:~/work$ sudo cat apache.txt >/etc/init.d/apache | |
bash: /etc/init.d/apache: 权限不够 |
提示权限不够,因为这个目录root账户也没有写权限。
这是我的系统的原因,别的系统不一定默认就是没有写权限的。
o@o-pc:~/work$ stat /etc/init.d/ | |
文件:"/etc/init.d/" | |
大小:4096 块:8 IO 块:4096 目录 | |
设备:803h/2051d Inode:2233490 硬链接:2 | |
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) | |
最近访问:2015-05-28 12:27:07.617607855 +0800 | |
最近更改:2015-05-28 09:36:16.162085700 +0800 | |
最近改动:2015-05-28 09:36:16.162085700 +0800 | |
创建时间:- |
chmod
修改权限,然后写入
o@o-pc:~/work$ sudo chmod a+w /etc/init.d | |
o@o-pc:~/work$ stat /etc/init.d/ | |
文件:"/etc/init.d/" | |
大小:4096 块:8 IO 块:4096 目录 | |
设备:803h/2051d Inode:2233490 硬链接:2 | |
权限:(0777/drwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root) | |
最近访问:2015-05-28 12:27:07.617607855 +0800 | |
最近更改:2015-05-28 09:36:16.162085700 +0800 | |
最近改动:2015-05-28 16:38:31.203252031 +0800 | |
创建时间:- | |
o@o-pc:~/work$ sudo cat apache.txt >/etc/init.d/apache |
1.3编辑/etc/init.d/apache文件#
Copy Highlighter-hljso@o-pc:~/work$ sudo vi /etc/init.d/apache
在文件最前面插入下面的行,指示这个脚本使用的解释器
#!/bin/sh
下面是不再使用的,这里简单介绍
还可以添加一下内容使其支持chkconfig命令:
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.
chkconfig 命令主要是用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
对应脚本修改
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
例如,random.init包含三行:
Copy Highlighter-hljschkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \ | |
# higher quality random number generation. |
2.为Apache控制脚本添加执行权限#
Copy Highlighter-hljso@o-pc:~/work$ chmod +x /etc/init.d/apache
3.使用sysv-rc-conf工具将Apache服务加入到系统服务#
3.1添加Apache服务到系统服务**#
chkconfig命令在ubuntu10.04之后就不再提供了,可以手动下载。
这里使用另外两个命令来配置ubuntu的启动服务,sysv-rc-conf和update-rc.d
先安装sysv-rc-conf工具
o@o-pc:~/work$ sudo apt-get install sysv-rc-conf
使用sysv-rc-conf工具
这里要注意权限问题
o@o-pc:~/work$ sysv-rc-conf | |
Can't create /var/lib/sysv-rc-conf : 权限不够 at /usr/sbin/sysv-rc-conf line 454. |
××sysv-rc-conf**操作简单,简洁的操作界面,你可以使用鼠标点击,也可以使用键盘操作,空格键
代表选择,“X”表示开启服务,Ctrl+N
下一页,Ctrl+P
上一页,Q
退出。
我们为其设置运行级别为2/3/5
,且不让它开机启动(为什么?我这是在自己的笔记本上弄的,不是在服务器)
还是来一张图片,会比较好看一点
┌ SysV Runlevel Config -: stop service =/+: start service h: help q: quit ┐ | |
│ │ | |
│ service 1 2 3 4 5 0 6 S │ | |
│ ---------------------------------------------------------------------------- │ | |
│ acpid [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ anacron [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ apache [ ] [X] [X] [ ] [X] [ ] [ ] [ ] │ | |
│ apparmor [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] │ | |
│ apport [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ avahi-dae$ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ bluetooth [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ brltty [ ] [ ] [ ] [ ] [ ] [ ] [ ] [X] │ | |
│ console-s$ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ cron [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ cups [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] │ | |
│ │ | |
└──────────────────────────────────────────────────────────────────────────────┘ | |
┌──────────────────────────────────────────────────────────────────────────────┐ | |
│ Use the arrow keys or mouse to move around. ^n: next pg ^p: prev pg │ | |
│ space: toggle service on / off │ | |
└──────────────────────────────────────────────────────────────────────────────┘ |
解释一下运行级别
运行级别:Linux系统任何时候都运行在一个指定的运行级上,并且不同的运行级程序和服务都不同,所要完成的工作和要达到的目的也不同,系统可以在这些运行级之间进行切换,来完成不同的工作。
运行级别等级 | 说明 |
---|---|
0 | 系统停机状态 |
1 | 单用户模式,只准许root用户对系统进系维护 |
2~5 | 多用户模式(其中3为字符界面、5为图形界面) |
6 | 重启启动 |
在这里需要注意的是,在Debian下(ubuntu其中之一)level2~5是没有任何区别的。
**可以使用runlevel
命令来查看当前系统的运行等级
o@o-pc:~/work$ runlevel | |
N 2 |