linux脚本init命令,CentOS的System V init启动脚本

CentOS系统本身自带了说明,在/usr/share/doc/initscripts-(*)/sysvinitfiles,内容如下:

所有System V init脚本都命名为/etc/rc.d/init.d/,其中是服务的名称。必须没有“.init”后缀。

示例脚本:

#!/bin/bash

#

# /etc/rc.d/init.d/

#

#

#

#

#

# of the file to the end of the tags section must begin with a #

# character. After the tags section, there should be a blank line.

# This keeps normal comments in the rest of the file from being

# mistaken for tags, should they happen to fit the pattern.>

# Source function library.

. /etc/rc.d/init.d/functions

case "$1" in

start)

echo -n "Starting services: "

touch /var/lock/subsys/

;;

stop)

echo -n "Shutting down services: "

rm -f /var/lock/subsys/

;;

status)

perhaps with the status function>

;;

restart)

;;

reload)

kill -HUP or by restarting the daemons, possibly with

$0 stop; $0 start>

;;

probe)

or not the service needs to be restarted or reloaded (or

whatever) in order to activate any changes in the configuration

scripts. It should print out a list of commands to give to

$0; see the description under the probe tag below.>

;;

*)

echo "Usage: {start|stop|status|reload|restart[|probe]"

exit 1

;;

esac

注意:重启和重载功能可以(通常)组合成一个测试,vis:

restart|reload)

不禁止您添加其他命令; 列出您打算以交互方式使用到使用消息的所有命令。

/etc/rc.d/init.d/functions函数

daemon [+/-nicelevel] program [arguments] [&]

如果守护程序尚未运行,则启动该守护程序。还有其他一些有用的东西,例如,如果守护进程意外终止,则保留守护进程。

killproc program [signal]

向程序发送信号; 默认情况下,它发送一个SIGTERM,如果进程没有死,它会在几秒钟后发送一个SIGKILL。

如果找到pid文件,它还会尝试删除它。

pidofproc program

试图找到一个程序的pid; 检查可能的pidfiles,使用pidof程序,甚至使用ps。主要用于此文件中的其他函数,但也可用于脚本。

status program

打印状态信息。假设程序名称与servicename相同。

Tags.

# chkconfig:

必须。是默认情况下应启动服务的级别列表。和是优先级编号。例如:

# chkconfig:2345 20 80有关详细信息,请阅读“man chkconfig”。

除非有一个非常好的,显性相反的原因,应该等于 100 -

# description:

必须。几行描述,继续使用'\'字符。以下行中的初始注释和后续空格将被忽略。

# description[ln]:

可选。应将描述翻译成指定的语言。

# processname:

可选,允许多个条目。对于脚本启动的每个进程名称,应该有一个进程名称条目。例如,samba服务启动两个守护进程:

#processname:smdb

#processname:nmdb

# config:

可选,允许多个条目。对于守护程序使用的每个静态配置文件,请使用单个条目。例如:

# config: /etc/httpd/conf/httpd.conf

# config: /etc/httpd/conf/srm.conf

(可选)如果服务器将自动重新加载配置文件(如果已更改),则可以在行中附加“autoreload”一词:

# config: /etc/foobar.conf autoreload

#pidfile:

可选,允许多个条目。使用就像配置条目一样,除了它指向pidfiles。假设pidfiles仅在进程创建时更新,而不是更晚。该文件的第一行应该是PID的ASCII表示; 终止换行符是可选的。不检查除第一行以外的任何行。

#project: true

可选,使用IN PLACE的processname,config和pidfile。如果存在,则可以通过运行以下命令来实现正确的重新加载 - 如果必要的循环:

command = $(/ etc / rd.d / init.d / SCRIPT probe)

[ -  n“$ command”] && /etc/rc.d/init.d/SCRIPT $ command

其中SCRIPT是服务的sysv init脚本的名称。

作为示例,需要执行复杂处理的脚本可以返回“run /var/tmp/

请注意,如果不需要执行任何操作使服务与其配置文件同步,则probe命令应该只是“exit 0”。

需要注意以下几点:

1、# chkconfig和# description不能少,必须写。

2、chkconfig的为启动优先级,在man中查询不到,一般end...不用理解,直接100-start...即可。start为开始的顺序,一般系统从小执行到大,数值任意,这个对于依赖启动有很大的帮助,比如控制先启动某个服务,再启动某个服务。以下是查询设置后的命令:

# 查询启动级别

chkconfig --list

# 查询启动顺序

grep chkconfig /etc/rc.d/init.d/

0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值