উত্তর:
আমি স্পিনিক্সকে চিনি না, তবে এখানে মূল পদ্ধতির কথা। নিম্নলিখিত বিষয়বস্তু দিয়ে একটি ফাইল /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.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
আমি সত্যিই স্পিনিক্স জানি না, তবে অনলাইন ম্যানুয়াল দ্বারা বিচার করে আপনার ডেমন চালানোর জন্য একটি স্টার্টআপ স্ক্রিপ্ট থাকা দরকার। সাধারণত এটি /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
একটি শর্ট স্ক্রিপ্ট ফাইল তৈরি করুন (বাশ, সম্ভবত) এটিতে নিম্নলিখিত লাইনের সমতুল্য রয়েছে:
/ পাথ / টু / স্ফিংস / ইনস্টলেশন / অনুসন্ধান - কনফিগ / পাথ / টো / স্পিনিক্স / কনফিগ / স্পিনেক্স.কনফ এবং
তারপরে স্ক্রিপ্টটিকে /etc/init.d এ রুট হিসাবে সরান এবং স্ক্রিপ্টটি chmod করুন ("chmod + x myscript.sh")
আমি আরও সহজ সমাধানের পরামর্শ দেব:
শুধু যোগ / usr / bin / searchd করার /etc/rc.local লাইন যে সামনে প্রস্থান 0
এই ফোরাম পোস্টটি একবার দেখুন: http://sphinxsearch.com/forum/view.html?id=3568#18044
মূলত আপনি ক্রোন জব যুক্ত করতে পারেন যা কমান্ড লাইন থেকে এটি চালিয়ে পুনরায় বুট করার জন্য স্পিনক্স শুরু করবে:
crontab -e
তারপরে নিম্নলিখিতগুলি যুক্ত করুন:
@ রিবুট অনুসন্ধান করা হয়েছে --config /path/to/config.conf