Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2397174
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类:

2011-04-19 10:22:54



关键词:service chkconfig kudzu nis nfs rpc s99 rc.local

 
  为什么/etc/init.d/目录和/etc/rc.d/init.d/目录完全相同?
因为/etc/ini.d/是/etc/rc.d/init.d/的链接
[root@localhost etc]# ls -l init.d
lrwxrwxrwx  1 root root 11 Nov  3 00:32 init.d -> rc.d/init.d


   /etc/init.d下的启动脚本只是定义的地方,不参与启动,真正参与启动的是rc.xd/目录下的S打头的脚本
只有以SXX,内核才在启动时去读他

   rcx.d下的启动脚本/非启动脚本都是init.d目录下启动脚本的链结
[root@localhost rc3.d]# ls -l
total 256
lrwxrwxrwx  1 root root 13 Nov  3 00:36 K01yum -> ../init.d/yum
lrwxrwxrwx  1 root root 24 Nov  3 00:37 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx  1 root root 34 Nov  3 00:37 K02NetworkManagerDispatcher -> ../init.d/NetworkManagerDispatcher
lient
lrwxrwxrwx  1 root root 15 Nov  3 00:39 K15httpd -> ../init.d/httpd
lrwxrwxrwx  1 root root 16 Nov 11 15:47 K36mysqld -> ../init.d/mysqld
lrwxrwxrwx  1 root root 17 Nov  3 00:36 K50netdump -> ../init.d/netdump
lrwxrwxrwx  1 root root 16 Nov  3 01:20 K50vsftpd -> ../init.d/vsftpd
lrwxrwxrwx  1 root root 18 Nov  3 00:35 S08iptables -> ../init.d/iptables
lrwxrwxrwx  1 root root 14 Nov  3 00:36 S55sshd -> ../init.d/sshd
lrwxrwxrwx  1 root root 16 Nov  3 01:59 S56xinetd -> ../init.d/xinetd
lrwxrwxrwx  1 root root 18 Nov  3 00:36 S80sendmail -> ../init.d/sendmail
lrwxrwxrwx  1 root root 13 Nov  3 00:35 S85gpm -> ../init.d/gpm
lrwxrwxrwx  1 root root 15 Nov  3 00:36 S90crond -> ../init.d/crond
lrwxrwxrwx  1 root root 13 Nov  3 00:41 S90xfs -> ../init.d/xfs
lrwxrwxrwx  1 root root 19 Nov  3 00:34 S98haldaemon -> ../init.d/haldaemon
lrwxrwxrwx  1 root root 11 Nov  3 00:33 S99local -> ../rc.local


   rc.local是最后一个启动的脚本(所以在rc3.d中是S99打头文件的链结),通常把用户自定义的启动脚本写入其中
lrwxrwxrwx  1 root root 11 Nov  3 00:33 S99local -> ../rc.local
[root@localhost rc3.d]# more S99local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.



    solaris里没有rc.local文件


   一个很好用的开通关闭SXX、KXX脚本的工具——/sbin/chkconfig
但只针对httpd,mysqld 这些系统应用,自编的应用不行
 [root@localhost rc3.d]# /sbin/chkconfig
chkconfig version 1.3.20 - Copyright (C) 1997-2000 Red Hat, Inc.
This may be freely redistributed under the terms of the GNU Public License.

usage:   chkconfig --list [name]
         chkconfig --add
         chkconfig --del
         chkconfig [--level ]
一个简单的开机启动rc3.d httpd的命令
[root@localhost rc3.d]# ls
K15httpd                     K36mysqld        K89netplugd    S13portmap    S33nifd           S95anacron  K20nfs                       K50netdump       K89rdisc       S14nfslock    S34mDNSResponder  S95atd  K20rwhod                     K50tux           K94diskdump    S15mdmonitor  S44acpid          S97messagebus
[root@localhost rc3.d]# /sbin/chkconfig --level 3 httpd on
[root@localhost rc3.d]# ls
K05saslauthd                 K35smb           K74ntpd        S09pcmcia     S25netfs          S85gpm         S99local  K10dc_server                 K35vncserver     K85mdmpd       S10network    S26apmd           S85httpd   K10psacct                    K35winbind       K89named       S12syslog     S28autofs         S90crond


   总结:开机自动启动自定义service两种方法
  •     法一:启动脚本法
编写启动脚本(shell)
以SXX名称放入rc3.d或rc5.d
最标准的方法是:脚本在init下建立,然后ln –s 到rc3.d,rc5.d
  •    法二:在rc.local(也是个shell)中,写入启动语句


   一个手动编制开机自动启动http的例子
    不知道怎么回事,安装了httpd,mysqld,但开机总是没有启动,用chkconfig也没用,所以自己编了一个script(当时是简单的一个脚本,不是system V那种格式的)
 root@mac-home macg]# vi server.sh
:
if [ -f /var/run/httpd.pid ]          
then
cat /var/run/httpd.pid
else
/etc/init.d/httpd start
fi

if [ -f /var/run/mysqld/mysqld.pid ]
then
cat /var/run/mysqld/mysqld.pid
else
/etc/init.d/mysqld start   
 [root@mac-home macg]# chmod +x server.sh
 以S99xxx的名字放入/etc/rc.d/rc3.d (如果是以level 3启动的话)
[root@mac-home macg]# cp server.sh /etc/rc.d/rc3.d/S99apache-mysql



   /etc/rc.local只执行全路径的,并且不带任何环境变量的命令
把一个sh程序放到rc.local里,发觉每次重起都不执行,ps -ef里面看不见
[root@FW ~]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/etc/openvpn/openvpn-startup.sh 
 这个rc.local里的指令虽然是全路径的,但openvpn-startup.sh却含有不是全路径的指令和环境变量
 
[root@FW ~]# vi /etc/openvpn/openvpn-startup.sh
#!/bin/sh

DIR=/etc/openvpn

# load TUN/TAP kernel module
modprobe tun

openvpn --cd $DIR --daemon --config static-lfc.conf
openvpn --cd $DIR --daemon --config static-zhao.conf
#openvpn --cd $DIR --daemon --config vpn2.conf
#openvpn --cd $DIR --daemon --config vpn2.conf
解决:
1。去掉变量
2。用全路径
/usr/local/sbin/openvpn --cd /etc/openvpn --daemon --config static-lfc.conf
/usr/local/sbin/openvpn --cd /etc/openvpn --daemon --config static-zhao.conf
重起后ps -ef能看到
[root@FW ~]# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root      2519     0 10:45 ?        00:00:00 /usr/sbin/atd
dbus      2528     0 10:45 ?        00:00:00 dbus-daemon-1 --system
root      2537     0 10:45 ?        00:00:00 hald
root      2648     0 10:46 ?        00:00:00 /usr/local/sbin/openvpn --cd /etc/openvpn --daemon --config static-lfc.conf




Service 安全
  •     去掉一切你不是真正需要的xinetd服务
你可能只需要其中的ssh,telnet,tftp,其他的都关掉
其它的类如 talk , ntalk, imap , pop-2, pop-3, finger , auth , etc.
除非你真的想用它。否则统统关闭
  •    去掉不需要的启动service
下面一些服务最好禁止启动(不过具体情况具体决定):
    snmpdx
    lpsched(LP print service)
    nscd (Name Service Cache Daemon)
    sendmail
    Keyserv
    rpcbind
    建议在DMZ中不要运行NFS服务
                             /etc/rc3.d/S88nfs.server
                              /etc/rc2.d/S90nfs.client
                        关掉一些nfs相关的服务如下服务:
                          nfsd
                          mountd
                          rpc.boot
                          in.rarpd
                          rpld
  建议不要运行NIS,NIS+ (S34yppasswdd S35ypserv )(NIS 服务器),建议连关闭都不用,直接删掉它
  •    所有的rcX.d里的脚本的文件属主都为root,为了防止特洛伊木马
[macg@machome]:/export/home/macg>$ls -l /etc/init.d
total 150
-rwxr--r--   5 root     sys          554 Nov 30  2004 IIim
-rwxr--r--   2 root     sys          256 Jan 22  2005 PRESERVE
-rw-r--r--   1 root     sys         2483 Jan 22  2005 README
-rwxr--r--   1 root     sys          625 Jan 22  2005 acct
-rwxr--r--   3 root     sys         1654 Dec 24 21:28 apache
-rwxr--r--   5 root     sys          824 May 27  2004 appserv
-rwxr--r--   5 root     sys         1023 Jan 22  2005 audit
-rwxr-xr-x   2 root     other       1558 Jan 10  2005 autoinstall
-rwxr--r--   6 root     sys          474 Jan 22  2005 boot.server
-rwxr--r--   2 root     sys         1262 Jan 22  2005 cachefs.daemon
-rwxr--r--   2 root     sys          733 Jan 22  2005 deallocate


   最小配置下的service
microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
messagebus      0:off   1:off   2:off   3:on    4:on    5:on    6:off
irqbalance       0:off   1:off   2:off   3:on    4:on    5:on    6:off 多核CPU支持
smartd          0:off   1:off   2:off   3:on    4:on    5:on    6:off  快速开机自检
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off   自动mount 光盘,移动硬盘,USB
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off 在系统启动时激活所有的网络接口
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off 启动但关闭所有子服务


   其他不是必需的service
nfslock    提供了NFS文件锁定功能
           如果 nfs是on,它就是on,否则就off, 
           nfslock,netfs,portmap都是依赖nfs的
portmap    提供RPC服务,一般是针对NFS的,为NIS和NFS提供动态端口的分配
rpcidmapd     rpcgssdm,rpcidmapd,rpcsrcgssd都是2.6内核新添的rpc服务
rpcgssd   rpc ,专门针对NFS的
netfs     Network Filesystem Mounter
          安装和卸载NFS、SAMBA和NCP网络文件系统
ypbind    NIS的服务器端
amd       Linux自动加载器(Automounter)
          这是一个daemon,它能自动地和透明地加载任何需要的NFS卷
   
arpwatch   维护arp表
routed     该守护程序支持rip协议的自动ip路由表维护
sendmail   
   
kudzu    硬件自动检测程序
         自动检测硬件是否发生变动,并相应进行硬件的添加、删除、修改等工作。
         填加硬件时可以设成on,平时off
rhnsd    redhat自动update
cups     print支持
pcmcia   提供对PC卡的支持,可以通过 /etc/exports共享
isdn     ISDN modem支持
acpid    电源管理(休眠一类的),专门用于笔记本
apmd    也是电源管理(监视一类的)
apmd    用来监视系统用电状态,并将相关信息通过syslogd写入日志
        对于笔记本电脑比较有用,台式电脑或一直开机的机型,就不需要
gpm    Text console 里的鼠标支持
openib    # Run this if your machine don't use InfiniBand
irqbalance    多核CPU支持
   
mdmonitor    对raid metadevice的区别
rawdevices    rawdevices是在使用cluster FS时用于加载raw设备的守护程序


    如何配置安装最小service?
  • 安装时选择mini package install
  • 按下面指令把不需要的service关掉

/sbin/chkconfig --level 3 pcmcia off   
/sbin/chkconfig --level 3 isdn off     
/sbin/chkconfig --level 3 kudzu off    
/sbin/chkconfig --level 3 nfslock off  
/sbin/chkconfig --level 3 sendmail off
/sbin/chkconfig --level 3 rhnsd off    
/sbin/chkconfig --level 3 cups off  
/sbin/chkconfig --level 3 mdmonitor off 
/sbin/chkconfig --level 3 acpid off   
/sbin/chkconfig --level 3 apmd off    
/sbin/chkconfig --level 3 gpm off   
/sbin/chkconfig --level 3 portmap off     
/sbin/chkconfig --level 3 rpcgssd off   
/sbin/chkconfig --level 3 rpcidmapd off  
/sbin/chkconfig --level 3 rawdevices off  
/sbin/chkconfig --level 3 netfs off 
/sbin/chkconfig --level 3 openibd off   
/sbin/chkconfig --level 3 iptables off
 

    kudzu  硬件自动检测程序,会自动检测硬件变动,并相应进行硬件的添加、删除工作。   
配置文件:
/etc/sysconfig/hwconf
/etc/sysconfig/kudzu
  • 当系统启动时,kudzu会对当前的硬件进行检测,并且和存储在 /etc/sysconfig/hwconf中的硬件信息进行一一对照
  • 如果某个硬件被添加或者删除,kudzu就会检测到
    并且通知用户是否进行相关配置
    然后修改/etc/sysconfig/hwconf,使硬件资料与系统保持同步。
  • 如果/etc/sysconfig/hwconf这个文件不存在,那么kudzu将会从下面三个文件中探测已经存在的硬件
    /etc/modprobe.conf
    /etc/sysconfig/network-scripts/
    /etc/X11/XF86Config


   是否启动kudzu?
如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。
可以在填加硬件后,开机启动kudzu,或干脆手动开启kudzu


    kudzu service ——自动检查硬件配置资料。生成hwconf文件
[root@nm mac]# cat /etc/sysconfig/hwconf
-
class: MOUSE
bus: PSAUX
detached: 0
device: input/mice
driver: generic3ps/2
desc: "ImPS/2 Generic Wheel Mouse"
-
class: CDROM
bus: IDE
detached: 0
device: hdc
driver: ignore
desc: "VMware Virtual IDE CDROM Drive"
-
class: HD
bus: IDE
detached: 0
device: hda
driver: ignore
desc: "VMware Virtual IDE Hard Drive"
physical: 4161/16/63
logical: 4161/16/63
-

class: NETWORK
bus: PCI
detached: 1
device: eth0
driver: pcnet32
desc: "Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]"
network.hwaddr: 00:0C:29:6D:27:ED
vendorId: 1022
deviceId: 2000
subVendorId: 1022
subDeviceId: 2000
pciType: 1
pcidom:    0
pcibus:  0
pcidev: 11
pcifn:  0


转载自:http://blog.sina.com.cn/s/blog_6151984a0100eis0.html

阅读(2250) | 评论(0) | 转发(0) |
0

上一篇:sed 用法

下一篇:find 命令

给主人留下些什么吧!~~