我使用以下命令启动服务(httpd):
/etc/init.d/'name of service' start
如果上面的 httpd 服务没有配置 service 关键字,如何使用下面的命令启动服务?
2)服务'nameofservice'启动例如:service httpd start
如何配置可以使用服务关键字启动和停止的服务,即:“service 'nameofservice' start”(如选项 2 中的服务关键字)而不是 /etc/init.d/nameofservice?
答案1
service(8) 命令在 /etc/init.d 中查找脚本。如果不存在这样的脚本,您可能需要编写自己的脚本。在网上你可以找到指南将帮助您做到这一点。
答案2
下面的脚本在 Centos 5 中进行了测试。我们将创建一个脚本来打印当前日期和时间,并将输出定向到日志文件并以名称 timed 保存。
vim /opt/timed
#!/bin/bash
while true;do
echo `date` >> /tmp/timed.log
done #script finish here below line enable execute permission of script
chmod +x /opt/timed
现在我们将编写 System V 脚本来启动和停止定时脚本。
vim /etc/init.d/time (save the script only in /etc/init.d directory only with the name of your choice we use name time here)
#!/bin/bash
# chkconfig: 345 80 20
# description: startup script for /opt/timed daemon
start() {
nohup /opt/timed &
}
stop() {
pkill timed
}
case "$1" in
start)
start #calling the start () function
;;
stop)
stop # calling the stop() function
;;
*)
echo "Usage: $0 {start|stop}"
RETVAL=1 #we return the value 1 bcz cmd is not sucessfull
esac
exit 0
chmod +x /etc/init.d/time (enabling the execute permission of script)
service time start (it will start the script timed)
ps –ef | grep timed (we can check that script is running with this command)
脚本说明
时间脚本必须在该/etc/init.d
目录中。chkconfig: 345 80 20
是脚本 345 的必要组成部分,代表 3,4 和 5 运行级别。 20 表示启动命令在 /etc/rc3/ 目录中的编号为 20 (S20)。 80 表示 stop 命令将在 /etc/rc3/ 目录中包含数字 80 (k80)。
start()
和stop()
是用于启动和停止守护进程的函数。当您在后台执行 Unix 作业(使用 &、bg 命令)并从会话注销时,您的进程将被终止。您可以使用多种方法来避免这种情况 - 使用 nohup 执行作业,或者使用 at、batch 或 cron 命令将其作为批处理作业。 PKill 命令允许您只需指定名称即可终止程序。 $1 采用第一个参数。 $0 表示脚本的名称。 RETVAL是环境变量,相当于脚本的退出状态,为0表示脚本运行成功,为1表示脚本运行失败。如果我们指定启动或停止以外的命令,则会打印使用消息。