我在linux上写了一个服务(Redhat Server Edition 5.1)。这是由shell scritpt启动的, 如果我启动我的应用程序,我手动启动我的服务,现在我想在启动时启动我的服务,通过我的服务在我的守护程序的init.d文件夹不在启动时调用,任何有想法如何开始Linux上启动时的守护进程?
这是我的样本,但无效
#!/bin/sh
#
# myservice This shell script takes care of starting and stopping
# the <myservice>
#
# Source function library
. /etc/rc.d/init.d/functions
# Do preliminary checks here, if any
#### START of preliminary checks #########
##### END of preliminary checks #######
# Handle manual control parameters like start, stop, status, restart, etc.
case "$1" in
start)
# Start daemons.
echo -n $"Starting <myservice> daemon: "
echo
daemon <myservice>
echo
;;
stop)
# Stop daemons.
echo -n $"Shutting down <myservice>: "
killproc <myservice>
echo
# Do clean-up works here like removing pid files from /var/run, etc.
;;
status)
status <myservice>
;;
restart)
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
答案 0 :(得分:3)
在你的剧本中添加2条评论:
# chkconfig: - 90 10
# description: description of your service
以root身份运行:
chkconfig --add my_service
答案 1 :(得分:3)
基本的unix守护程序执行以下操作:
fork
close all filedescriptors (stdout,stderr, etc)
chdir /
signal handeling (sighup, sigterm etc)
while
do stuff
sleep(xx)
done
(C:daemon.c中的例子)
Red Hat关于如何安装启动脚本的示例:
在redhat的系统启动时启动一个deamon你需要一个init脚本。 它应该放在/etc/init.d
中init脚本示例:
代码:
# chkconfig: 3 99 1
# description: my daemon
case "$1" in
'start')
/usr/local/bin/mydaemon
;;
'stop')
pkill mydaemon
;;
'restart')
pkill -HUP mydaemon
;;
esac
第一行将告诉chkconfig以优先级99启动运行级别3的守护程序,并在服务器关闭时将其作为优先级1终止。
安装启动脚本使用以下命令:chkconfig --add ./scriptabove 现在它将在服务器启动时启动。
立即启动使用:服务启动
如果您想了解更多详细信息,请访问a link
希望这有点帮助!
答案 2 :(得分:0)
答案 3 :(得分:0)
chkconfig --add your_service_name