所有System V init脚本都命名为/etc/rc.d/init.d/必须没有”.init”后缀。
示例脚本:
注意:重启和重载功能可以(通常)组合成一个测试,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”。
除非有一个非常好的,显性相反的原因,
# 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。如果存在,则可以通过运行以下命令来实现正确的重新加载 – 如果必要的循环:
其中SCRIPT是服务的sysv init脚本的名称。
作为示例,需要执行复杂处理的脚本可以返回”run /var/tmp/
请注意,如果不需要执行任何操作使服务与其配置文件同步,则probe命令应该只是”exit 0″。
Original: https://www.cnblogs.com/EasonJim/p/10053115.html
Author: EasonJim
Title: 编写CentOS的System V init启动脚本
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547743/
转载文章受原作者版权保护。转载请注明原作者出处!