当前位置:首页 > 技术与方案 > Linux及应用

用红帽子的chkconfig管理Init脚本 (2)

(2012-09-26 17:18:13)

       有的时候, 删掉一个服务也很恰当。例如,针对 sendmail,在客户机上导入本地账号的邮件没有必要。运行 sendmail 作为守护进程就不是必要的了。这种情况,我发现禁止 sendmail 服务很有必要,减少了潜在的安全问题,从 chkconfig 中删掉 sendmail,输入:

chkconfig --del sendmail

在下面,我们的 find 命令显示该处没有符号连接了,不过 sendmail 的 init 脚本仍然有:

[root]# find /etc/rc.d -name '*sendmail' -print

/etc/rc.d/init.d/sendmail

在我看来这很完美。脚本保留了,万一 sendmail 需要作为一个服务实现呢?不过所有的符号连接去掉了。我们能在每一个运行级禁止 sendmail 服务,这将在每一个 rc*.d 子目录中放置一个 kill 脚本,虽然 sendmail 从不在初始化阶段启动,是个不必要的任务 ,可是,我曾看到一些系统管理员需要在特定的场合手工启动服务。把 kill 脚本留在那里确保可以干净的杀掉服务。

到目前为止,一切顺利。我们已经知道使用 chkconfig 如何查看、调整、删掉服务。现在添加一个新的服务。看下面的脚本 oracle:

Listing 1. Oracle Script

#!/bin/sh

#chkconfig: 2345 80 05

#description: Oracle 8 Server

ORA_HOME=/usr/home/oracle/product/8.0.5

ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]

then

echo "Oracle startup: cannot start"

exit

fi

case "$1" in

"start")

su - $ORA_OWNER -c $ORA_HOME/bin/dbstart

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"

;;

"stop")

su - $ORA_OWNER -c $ORA_HOME/bin/dbshut

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"

;;

esac

-----------------------------------------------------

使用这个脚本,Oracle 8 可以以参数 "start" 启动,以 "stop" 参数停止。它符合 init 脚本的最小要求可以和 /etc/rc.d/rc 脚本联合使用。

把脚本放到 /etc/rc.d/init.d 中并运行(以 root) :

chmod +x /etc/rc.d/init.d/oracle

使你的脚本可执行。如果你担心普通用户察看这个脚本,你可以设定更严格的文件权限 。只要这个脚本可以被 root 作为单独的脚本运行就可以。

注意脚本中的两行注释:

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号