Differences between revisions 3 and 6 (spanning 3 versions)
Revision 3 as of 2006-04-21 03:32:32
Size: 1625
Editor: ZoomQuiet
Comment: [:SynCvs:cvsup 的RCng 脚本]
Revision 6 as of 2006-06-20 12:56:58
Size: 2567
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 29: Line 29:

=== rcNG ===
'''利用FreeBSD 的优秀工具,可以更加标准的管理Karrigell 服务!'''
Line 30: Line 33:
 * [http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-starting-services.html FreeBSD 扩展应用程序配置] 有脚本模板
Line 31: Line 35:
[http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-starting-services.html FreeBSD 扩展应用程序配置] 的脚本模板
{{{
>Ksrv start
>Ksrv stop
 1. 改进现有启动脚本:'''runK.sh''' {{{
#!/bin/sh
# running Karrigell as srv
echo
echo "running K!"
cd /path/to/Karrigell
# 使用 daemon 命令来记录运行 pid
/usr/sbin/daemon -p /var/run/karrigell.pid /usr/local/bin/python Karrigell.py 2>/var/log/K.log &
echo
exit 0
Line 36: Line 46:
{{{  1. 创建 rcNG 脚本在 '''/usr/local/etc/rc.d''' 中,比如说叫:''karrigell.sh''{{{
Line 47: Line 57:
karrigell_enable=${karrigell_enable-"NO"} karrigell_enable=${karrigell_enable-"YES"}
Line 49: Line 59:
karrigell_pidfile=${karrigell_pidfile-"/var/run/karrigell.pid"} #karrigell_pidfile=${karrigell_pidfile-"/var/run/karrigell.pid"}
# 奇怪的模板指示,两种声明方式都可以
karrigell_pidfile="/var/run/karrigell.pid"
Line 55: Line 67:
command="/path/to/runK.sh" command="/path/to/u/runK.sh"
# 因为不是直接运行的进程,所以要给 rc.subr 一点提示,声明真实运行的进程特征
procname="/usr/local/bin/python"
Line 64: Line 78:
Line 65: Line 80:
 的类似方式来进行服务管理
最后在 ` /etc/rc.conf` 中追加{{{
#rc_debug="YES"
#060421 rcNG Karrigell
karrigell_enable = "YES"
}}}

 * 唉呀呀!好也!就可以通过{{{
#/usr/local/etc/rc.d/karrigell start
#/usr/local/etc/rc.d/karrigell stop
}}}
 的标准方式来进行服务管理了

Karrigell 作为服务启动 ::-- ZoomQuiet [DateTime(2006-02-14T06:33:15Z)] TableOfContents

Include(CPUGnav)

1. 思路

  • Windows 下面——不用想了,M$不会让你这么玩的…………
  • Uunix 下面——太太自然了,和一切服务一样!伪造成服务类的脚本来启动就好!

1.1. Zoomq的作法

  • FreeBSD 环境中

# running Karrigell as srv
echo
echo "running K!"
cd /path/to/u/Karrigell
/usr/local/bin/python Karrigell.py 2>/var/log/K.log &
echo
exit  0
  • 标准的输出导向,就可以将Karrigell 丢到后台运行了

1.1.1. rcNG

利用FreeBSD 的优秀工具,可以更加标准的管理Karrigell 服务!

  • 进一步的 可以编写为 rcNG 脚本更加标准化的通过,参考[:SynCvs:cvsup 的RCng 脚本]

  • [http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-starting-services.html FreeBSD 扩展应用程序配置] 有脚本模板

  • 改进现有启动脚本:runK.sh

    # running Karrigell as srv
    echo
    echo "running K!"
    cd /path/to/Karrigell
    # 使用 daemon 命令来记录运行 pid
    /usr/sbin/daemon -p /var/run/karrigell.pid /usr/local/bin/python Karrigell.py 2>/var/log/K.log &
    echo
    exit  0
  • 创建 rcNG 脚本在 /usr/local/etc/rc.d 中,比如说叫:karrigell.sh

    #
    # PROVIDE: karrigell
    # REQUIRE: DAEMON
    # KEYWORD: shutdown
    
    #
    # DO NOT CHANGE THESE DEFAULT VALUES HERE
    # SET THEM IN THE /etc/rc.conf FILE
    #
    karrigell_enable=${karrigell_enable-"YES"}
    karrigell_flags=${karrigell_flags-""}
    #karrigell_pidfile=${karrigell_pidfile-"/var/run/karrigell.pid"}
    # 奇怪的模板指示,两种声明方式都可以
    karrigell_pidfile="/var/run/karrigell.pid"
    
    . /etc/rc.subr
    
    name="karrigell"
    rcvar=`set_rcvar`
    command="/path/to/u/runK.sh"
    # 因为不是直接运行的进程,所以要给 rc.subr 一点提示,声明真实运行的进程特征
    procname="/usr/local/bin/python"
    
    load_rc_config $name
    
    pidfile="${karrigell_pidfile}"
    
    start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${karrigell_flags} ${command_args}"
    
    run_rc_command "$1"

最后在  /etc/rc.conf 中追加

#rc_debug="YES"
#060421 rcNG Karrigell
karrigell_enable = "YES"
  • 唉呀呀!好也!就可以通过

    #/usr/local/etc/rc.d/karrigell start
    #/usr/local/etc/rc.d/karrigell stop
    的标准方式来进行服务管理了

KarrigellRunSrv (last edited 2009-12-25 07:16:12 by localhost)