Linux设置开机自动运行服务
有时出于某种需要,我们需要系统一启动就运行我们的某个程序来执行服务或等待命令,在windows下可以通过NT服务来实现,在linux下这些进程就叫做守护进程,或者Daemon进程。下面使用RHEL6环境具体介绍下设置方法。
首先需要准备一个启动脚本,并放到/etc/init.d目录下,下面是一个参考脚本。
#!/bin/sh # chkconfig: 345 88 15 # description: start/stop mytest daemon # Source function library. if [ -f /etc/init.d/functions ]; then . /etc/init.d/functions else . /lib/lsb/init-functions fi #进入你的工作目录 cd /mytest #加载必要的环境变量 source /etc/profile start() { echo -n $"run mytest"
#启动命令,需根据自己情况修改 /mytest/start.sh > /var/mytest.log 2>&1 & #注意这里一定要把程序切入后台执行 echo } stop() { echo -n $"stop mytest "
#下面是停止命令,需根据自己情况修改 /mytest/stop.sh echo } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; *) echo $"Usage: $0 {start|stop|restart|reload}" esac
将以上代码命名为mytest,放到/etc/init.d下面。代码中第二行第三行是为了支持chkconfig而设置的,运行级别是3、4、5,启动顺序号是88,停止顺序号15,注意检查不要与已经存在的序号冲突。
现在就可以通过以下命令来启动停止进程
/etc/init.d/mytest start /etc/init.d/mytest stop
测试没有问题,启动停止都正常了,就可以进入下一步,如果发现没有启动成功,可以通过/var/mytest.log的日志内容来确定具体原因。
要想随操作系统的启动和停止来启停服务,很简单,在redhat发行版下面只需要
chkconfig --add mytest
mytest就是/etc/init.d下面那个脚本文件的名称。