AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 8619
In Process

        4 revs, 3 users 67%anon
4 revs, 3 users 67%anon
Asked: 2009-05-16 06:06:56 +0800 CST2009-05-16 06:06:56 +0800 CST 2009-05-16 06:06:56 +0800 CST

重新启动 Ubuntu 服务器时如何使 sphinx 重新启动?

  • 772

我在我的 ubuntu 9.04 服务器上构建并安装了 sphinx search。

重新启动时如何使 sphinx 守护程序自动启动?

linux ubuntu sphinxsearch
  • 9 9 个回答
  • 33174 Views

9 个回答

  • Voted
  1. Ivan
    2009-05-16T09:14:19+08:002009-05-16T09:14:19+08:00

    我不知道 Sphinx,但这是基本方法。创建一个包含以下内容的文件/etc/init.d/searchd(还有这个脚本,但您可能需要稍微调整一下):

    #!/bin/bash
    
    case "${1:-''}" in
      'start')
            # put the command to start sphinx
            # i.e., /usr/bin/searchd start or /usr/bin/searchd --daemon or whatever the command is
            ;;
      'stop')
            # stop command here
            ;;
      'restart')
            # restart command here
            ;;
      *)
            echo "Usage: $SELF start|stop|restart"
            exit 1
            ;;
    esac
    

    然后执行以下命令:

    $ sudo update-rc.d searchd defaults
    

    手动控制服务:

    $ sudo /etc/init.d/searchd <start|stop|restart>
    
    • 13
  2. jtimberman
    2009-06-01T21:32:13+08:002009-06-01T21:32:13+08:00

    我们在 Debian 系统上为客户部署了 Sphinx,并使用Runit来管理流程。我们不必编写特殊的初始化脚本,而且由于我们在其他平台(主要是 CentOS/RHEL)上使用 Runit,所以它非常便携。

    • 1
  3. Colin Pickard
    2011-10-05T07:49:50+08:002011-10-05T07:49:50+08:00

    在撰写本文时为 ubuntu 打包的 sphinx 版本(0.99)具有以下启动脚本。

    我将它重新用于我从源代码编译的 2.0.1 测试版,只是更改了行DAEMON=/usr/local/..,它对我有用。

    #! /bin/sh
    #
    #       Written by Miquel van Smoorenburg <[email protected]>.
    #       Modified for Debian
    #       by Ian Murdock <[email protected]>.
    #               Further changes by Javier Fernandez-Sanguino <[email protected]>
    #               Modified for sphinx by Radu Spineanu <[email protected]>
    #
    #
    
    ### BEGIN INIT INFO
    # Provides:          sphinxsearch
    # Required-Start:    $local_fs $remote_fs $syslog $network $time
    # Required-Stop:     $local_fs $remote_fs $syslog $network
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Fast standalone full-text SQL search engine
    ### END INIT INFO
    
    
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DAEMON=/usr/local/sphinx/bin/searchd
    NAME=sphinxsearch
    DESC=sphinxsearch
    
    test -x $DAEMON || exit 0
    
    LOGDIR=/var/log/sphinxsearch
    PIDFILE=/var/run/searchd.pid
    DODTIME=1                   # Time to wait for the server to die, in seconds
                                # If this value is set too low you might not
                                # let some servers to die gracefully and
                                # 'restart' will not work
    
    # Include sphinxsearch defaults if available
    if [ -f /etc/default/sphinxsearch ] ; then
        . /etc/default/sphinxsearch
    fi
    
    if [ "$START" != "yes" ]; then
      echo "To enable $NAME, edit /etc/default/sphinxsearch and set START=yes"
      exit 0
    fi
    
    
    set -e
    
    running_pid()
    {
        # Check if a given process pid's cmdline matches a given name
        pid=$1
        name=$2
        [ -z "$pid" ] && return 1
        [ ! -d /proc/$pid ] &&  return 1
        cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1 |cut -d : -f 1`
        # Is this the expected child?
        [ "$cmd" != "$name" ] &&  return 1
        return 0
    }
    
    running()
    {
    # Check if the process is running looking at /proc
    # (works for all users)
    
        # No pidfile, probably no daemon present
        [ ! -f "$PIDFILE" ] && return 1
        # Obtain the pid and check it against the binary name
        pid=`cat $PIDFILE`
        running_pid $pid $DAEMON || return 1
        return 0
    }
    
    force_stop() {
    # Forcefully kill the process
        [ ! -f "$PIDFILE" ] && return
        if running ; then
            kill -15 $pid
            # Is it really dead?
            [ -n "$DODTIME" ] && sleep "$DODTIME"s
            if running ; then
                kill -9 $pid
                [ -n "$DODTIME" ] && sleep "$DODTIME"s
                if running ; then
                    echo "Cannot kill $LABEL (pid=$pid)!"
                    exit 1
                fi
            fi
        fi
        rm -f $PIDFILE
        return 0
    }
    
    case "$1" in
      start)
            echo -n "Starting $DESC: "
    
            # Check if we have the configuration file
            if [ ! -f /etc/sphinxsearch/sphinx.conf ]; then
                echo "Please create an /etc/sphinxsearch/sphinx.conf configuration file."
                echo "Templates are in the /etc/sphinxsearch/ directory."
                exit 0
            fi
    
            start-stop-daemon --start --exec ${DAEMON}
            if running ; then
                echo "$NAME."
            else
                echo " ERROR."
            fi
            ;;
      stop)
            echo -n "Stopping $DESC: "
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \
                --exec $DAEMON
            echo "$NAME."
            ;;
      force-stop)
            echo -n "Forcefully stopping $DESC: "
            force_stop
            if ! running ; then
                echo "$NAME."
            else
                echo " ERROR."
            fi
            ;;
      restart)
        echo -n "Restarting $DESC: "
            start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \
                --exec $DAEMON
            [ -n "$DODTIME" ] && sleep $DODTIME
            start-stop-daemon --start --exec ${DAEMON}
            echo "$NAME."
            ;;
    
      status)
        echo -n "$LABEL is "
        if running ;  then
            echo "running"
        else
            echo " not running."
            exit 1
        fi
        ;;
      *)
        N=/etc/init.d/$NAME
        # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
        echo "Usage: $N {start|stop|restart|force-reload|status|force-stop}" >&2
        exit 1
        ;;
    esac
    
    exit 0
    
    • 1
  4. 2 revs, 2 users 67%anon
    2009-05-16T06:06:57+08:002009-05-16T06:06:57+08:00

    将重启脚本添加到 /etc/init.d 目录。

    • 0
  5. Shannon Nelson
    2009-05-16T06:06:57+08:002009-05-16T06:06:57+08:00

    我不太了解 sphinx,但是从在线手册来看,您需要有一个启动脚本来运行守护程序。通常这是通过在 /etc/init.d 中创建一个条目并将其链接到适当的 /etc/rcX.d 目录来完成的。检查 /etc/init.d 中的 README 文件以获取详细信息。

    如果不出意外,这样的事情是快速而肮脏的答案:

    $ cat > /etc/init.d/sphinx
    cd /usr/local/sphinx/etc
    /usr/local/sphinx/bin/searchd
    ^D
    $ ln -s /etc/init.d/sphinx /etc/init.d/rc3.d/S99sphinx
    
    • 0
  6. Demi
    2009-05-16T06:06:57+08:002009-05-16T06:06:57+08:00

    创建一个简短的脚本文件(可能是 bash),其中包含与以下行等效的内容:

    /path/to/sphinx/installation/searchd --config /path/to/sphinx/config/sphinx.conf &

    然后将脚本以 root 身份移动到 /etc/init.d,并 chmod 脚本(“chmod +x myscript.sh”)

    • 0
  7. Brent
    2009-05-16T06:16:23+08:002009-05-16T06:16:23+08:00

    我会建议一个更简单的解决方案:

    只需将/usr/bin/searchd添加到/etc/rc.local在退出 0的行之前

    • 0
  8. allesklar
    2009-09-17T04:22:04+08:002009-09-17T04:22:04+08:00

    如果您碰巧在您的 rails 应用程序中使用 sphinx,那么使用时 gem管理它是一种非常简单的方法。

    Ryan Bates 做了一个非常好的截屏视频。这个网站不允许我在这里放一个以上的链接,但我推荐它。

    • 0
  9. a_friend
    2010-01-05T14:27:00+08:002010-01-05T14:27:00+08:00

    看看这个论坛帖子:http ://sphinxsearch.com/forum/view.html?id=3568#18044

    基本上,您可以通过从命令行执行以下命令来添加一个将在重新启动时启动 Sphinx 的 cron 作业:

    crontab -e

    然后添加以下内容:

    @reboot searchd --config /path/to/config.conf

    • 0

相关问题

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve