文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CentOS中System V init启动脚本怎么用

2023-06-05 15:04

关注

这篇文章给大家分享的是有关CentOS中System V init启动脚本怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

CentOS系统本身自带了说明,在/usr/share/doc/initscripts-(*)/sysvinitfiles,内容如下:所有System V init脚本都命名为/etc/rc.d/init.d/<servicename>,其中</servicename><servicename>是服务的名称。必须没有“.init”后缀。

示例脚本:

#!/bin/bash## /etc/rc.d/init.d/<servicename>## <description of the *service*># <any general comments about this init script>## <tags -- see below for tag definitions. *Every line* from the top# 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<define any local shell functions used by the code that follows>case "$1" in    start)        echo -n "Starting <servicename> services: "        <start daemons, perhaps with the daemon function>        touch /var/lock/subsys/<servicename>    ;;    stop)        echo -n "Shutting down <servicename> services: "        <stop daemons, perhaps with the killproc function>        rm -f /var/lock/subsys/<servicename>    ;;    status)        <report the status of the daemons in free-form format,        perhaps with the status function>    ;;    restart)        <restart the daemons, normally with $0 stop; $0 start>    ;;    reload)        <cause the service configuration to be reread, either with        kill -HUP or by restarting the daemons, possibly with        $0 stop; $0 start>    ;;    probe)        <optional. If it exists, then it should determine whether        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: <servicename> {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: <startlevellist> <startpriority> <endpriority>

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

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

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

# description: <multi-line description of service>

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

# description[ln]: <multi-line description of service in the language \ # ln, whatever that is>

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

# 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/<servicename.probe.$$”并实现“run”命令,该命令将执行命名脚本然后将其删除。

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

需要注意以下几点:

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

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

# 查询启动级别chkconfig --list <servicename># 查询启动顺序grep chkconfig /etc/rc.d/init.d/<servicenaem>

感谢各位的阅读!关于“CentOS中System V init启动脚本怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯