Differences between revisions 8 and 11 (spanning 3 versions)
Revision 8 as of 2008-08-24 12:03:05
Size: 2633
Editor: ZoomQuiet
Comment:
Revision 11 as of 2009-12-25 07:16:12
Size: 2668
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
::-- ZoomQuiet [[[DateTime(2006-02-14T06:33:15Z)]]]
[[TableOfContents]]
::-- ZoomQuiet [<<DateTime(2006-02-14T06:33:15Z)>>]
##[[TableOfContents]]
Line 9: Line 9:
[[Include(CPUGnav)]] <<Include(CPUGnav)>>
Line 12: Line 12:

=== Zoomq的作法 ===
##startInc
Line 16: Line 19:
== Zoomq的作法 ==
Line 30: Line 32:
=== rcNG === ==== rcNG ====
Line 32: Line 34:
  * 进一步的 可以编写为 rcNG 脚本更加标准化的通过,参考[:SynCvs:cvsup 的RCng 脚本]
 * [http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-starting-services.html FreeBSD 扩展应用程序配置] 有脚本模板
  * 进一步的 可以编写为 rcNG 脚本更加标准化的通过,参考[[SynCvs|cvsup 的RCng 脚本]]
 * [[http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/configtuning-starting-services.html|FreeBSD 扩展应用程序配置]] 有脚本模板
Line 93: Line 95:

##endInc

Karrigell 作为服务启动 ::-- ZoomQuiet [2006-02-14 06:33:15]

CPUG联盟::

CPUG::门户plone

BPUG

SPUG

ZPUG

SpreadPython Python宣传

1. Zoomq的作法

思路
  • Windows 下面——不用想了,M$不会让你这么玩的…………
  • Uunix 下面——太太自然了,和一切服务一样!伪造成服务类的脚本来启动就好!
  • 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. rcNG

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

    • 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"
    ## 特别注意BSD 中的语法约定,不能有空格,这里!
    • 唉呀呀!好也!就可以通过

      #/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)