আমি যখন আমার উবুন্টু সার্ভারটি পুনরায় চালু করব তখন আমি কীভাবে স্পিনিক্স পুনরায় চালু করব?


12

আমি আমার উবুন্টু 9.04 সার্ভারে স্ফিংস অনুসন্ধানটি তৈরি এবং ইনস্টল করেছি।

আমি পুনরায় বুট করার সময় আমি কীভাবে স্ফিংস ডিমনটিকে স্বয়ংক্রিয়ভাবে শুরু করব?

উত্তর:


13

আমি স্পিনিক্সকে চিনি না, তবে এখানে মূল পদ্ধতির কথা। নিম্নলিখিত বিষয়বস্তু দিয়ে একটি ফাইল /etc/init.d/sechd তৈরি করুন ( এই স্ক্রিপ্টটিও রয়েছে , তবে আপনাকে সম্ভবত এটি কিছুটা সামঞ্জস্য করতে হবে):

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

এই স্ক্রিপ্ট পুরোপুরি কাজ করে। রেকর্ডের জন্য, আমি যে স্টার্ট / স্টপ / পুনঃসূচনা কমান্ডগুলি ব্যবহার করেছি তা এখানে। এটি একটি উবুন্টু হার্ডি সার্ভারে রয়েছে এবং আমি উত্স থেকে স্ফিংস 0.9.8.1-রিলিজ ইনস্টল করেছি। শুরু, / usr / local / bin / searchd স্টপ, / usr / local / bin / searchd --stop পুনর্সূচনা, / usr / local / bin / searchd --stop &&, / usr / local / bin / searchd
Apreche

কবজির মতো কাজ করেছেন। সাবধানতার একটি শব্দ: সন্ধান করা ফাইলটির যথাযথ অনুমতি আছে কিনা তা নিশ্চিত করুন।
ডেভিড

1

আমরা ডেবিয়ান সিস্টেমগুলিতে গ্রাহকের জন্য স্পিনিক্স মোতায়েন করেছি এবং প্রক্রিয়াগুলি পরিচালনা করতে রুনিট ব্যবহার করি । আমাদের একটি বিশেষ থ্রি স্ক্রিপ্ট লিখতে হয়নি এবং যেহেতু আমরা অন্যান্য প্ল্যাটফর্মগুলিতে রানিট ব্যবহার করছিলাম (সেন্টোস / আরএইচইল মূলত) এটি পুরোপুরি পোর্টেবল ছিল।


1

লেখার সময় উবুন্টু (0.99) -র জন্য স্ফিংক্সের যে সংস্করণটি প্যাকেজ করা হয়েছে তার নীচে স্টার্টআপ স্ক্রিপ্ট রয়েছে।

আমি এটি 2.0.1 বিটার জন্য পুনরায় ব্যবহার করেছি যা আমি উত্স থেকে সংকলন করেছি, কেবল লাইনটি পরিবর্তন করেছি DAEMON=/usr/local/..এবং এটি আমার পক্ষে কাজ করে।

#! /bin/sh
#
#       Written by Miquel van Smoorenburg <miquels@cistron.nl>.
#       Modified for Debian
#       by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#               Further changes by Javier Fernandez-Sanguino <jfs@debian.org>
#               Modified for sphinx by Radu Spineanu <radu@debian.org>
#
#

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

এটি আমার জন্যও কাজ করেছিল!
ChrisInCambo

0

আমি সত্যিই স্পিনিক্স জানি না, তবে অনলাইন ম্যানুয়াল দ্বারা বিচার করে আপনার ডেমন চালানোর জন্য একটি স্টার্টআপ স্ক্রিপ্ট থাকা দরকার। সাধারণত এটি /etc/init.d এ এন্ট্রি তৈরি করে এবং উপযুক্ত /etc/rcX.d ডিরেক্টরিতে লিঙ্ক করে এটি করা হয়। বিশদের জন্য README ফাইলটি /etc/init.d এ চেক করুন।

আর কিছু না হলে এর মতো কিছু হ'ল দ্রুত এবং নোংরা উত্তর:

$ 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

একটি শর্ট স্ক্রিপ্ট ফাইল তৈরি করুন (বাশ, সম্ভবত) এটিতে নিম্নলিখিত লাইনের সমতুল্য রয়েছে:

/ পাথ / টু / স্ফিংস / ইনস্টলেশন / অনুসন্ধান - কনফিগ / পাথ / টো / স্পিনিক্স / কনফিগ / স্পিনেক্স.কনফ এবং

তারপরে স্ক্রিপ্টটিকে /etc/init.d এ রুট হিসাবে সরান এবং স্ক্রিপ্টটি chmod করুন ("chmod + x myscript.sh")


0

/Etc/init.d ডিরেক্টরিতে একটি পুনঃসূচনা স্ক্রিপ্ট যুক্ত করুন।



0

যদি আপনি আপনার রেল অ্যাপ্লিকেশনটিতে স্ফিংকস ব্যবহার করেন তবে হ'ল রত্নের সাহায্যে এটি পরিচালনা করার একটি মৃত সহজ উপায় ।

রায়ান বেটস এ সম্পর্কে একটি খুব ভাল স্ক্রিনকাস্ট তৈরি করেছেন। এই সাইটটি আমাকে এখানে একাধিক লিঙ্ক রাখতে দেবে না তবে আমি এটির প্রস্তাব দিই।


0

এই ফোরাম পোস্টটি একবার দেখুন: http://sphinxsearch.com/forum/view.html?id=3568#18044

মূলত আপনি ক্রোন জব যুক্ত করতে পারেন যা কমান্ড লাইন থেকে এটি চালিয়ে পুনরায় বুট করার জন্য স্পিনক্স শুরু করবে:

crontab -e

তারপরে নিম্নলিখিতগুলি যুক্ত করুন:

@ রিবুট অনুসন্ধান করা হয়েছে --config /path/to/config.conf

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.