日志文章

2008年01月31日 17:47:39

轻松创建linux服务

经常有自己在linux平台的应用,需要设置其在系统重启时自启动,
通常的做法是自己写个shell,用S或K开头放置到/etc/rc.d/rcx.d的相应目录下
但如果通过把它注册成一个服务,即可以提供方便的启动和服务管理。

例如,proxy用户有一个proxy的应用需要自启动:

1、我们首先用proxy用户,写好两个shell
startpxy.sh 和 stoppxy.sh,分别用于启动和关闭相关的服务程序

2、我们用root用户,在/etc/init.d下,编译一下proxy的shell
这个shell关键前面要提供两行注释的信息:
  第一行说明启动的运行级别,启动优先级,关闭优先级
  第二行是对该服务的一个描述,我们的例子如下:

Copy code
# chkconfig: 35 99 99
# description: Proxy service


3、自行处理启动、关闭和重启的过程,由于是root用户,关键是要转成相应的用户
运行程序,我们可以用sudo su - 用户 -c 进程来处理,实例如下:
Copy code

# config system enviroment

source /etc/profile
source /home/proxy/.bash_profile
case "$1" in
start)
  date >> ${START_LOG}
  sudo su - proxy-c /home/proxy/bin/startpxy.sh >> ${START_LOG}
  ${out} "[INFO] Proxy Service started."
  date >> ${START_LOG}
  ${out} "[INFO] Proxy Service started." >> ${START_LOG}
  ;;
stop)
  date >> ${STOP_LOG}
  sudo su - proxy-c /home/proxy/bin/stoppxy.sh >> ${STOP_LOG}
  ${out} "[INFO] Proxy Service stoped."
  date >> ${STOP_LOG}
  ${out} "[INFO] Proxy Service stoped." >> ${STOP_LOG}
  ;;
restart)
  $0 stop
  $0 start
  ;;
*)
  echo "Usage: proxy {start|stop|restart}"
  exit 1
  ;;
esac


4、把它加入service服务:
  
Copy code
chkconfig --add proxy


5、测试是否可用:
# service proxy start
[INFO] Proxy Service started.
# service proxy stop
[INFO] Proxy Service stoped
# service proxy restart
[INFO] Proxy Service stoped.
[INFO] Proxy Service started.
由于我们配置了3和5启动,在/etc/rc.d/rc3.d和/etc/rc.d/rc5.d都可以看到相应的链接:
S99proxy
 用chkconfig检测,也可以看到:
Copy code
#chkconfig --list|grep proxy
proxy     0:off   1:off   2:off   3:on   4:off   5:on   6:off


6、更改启动级别,例如想4时启动,5时不启动,则
Copy code
#chkconfig --level 4 proxy on#chkconfig --level 5 proxy off


7、如果我想关闭服务:
 
Copy code
chkconfig --del proxy


Tags: 自启动   linux   服务  

类别: linux技术 |  评论(1) |  浏览(2071) |  收藏
发表评论